完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
注意:如果点击空白处无法输入,则点击字会有输入提示符 | 则可以使用键盘进行输入!
此板块为 [ARM裸机加强版]
目前C函数调用 和 汇编直接设置系统时钟串口可以发送数据 但是在汇编中使用bl 跳转到设置系统时钟的代码段,串口无法正常发送
.global _start _start: //关闭看门狗 bl CLOSE_WATCHDOG_S //设置系统时钟 bl SYSTEM_CLCOK_INIT_S //设置栈 ldr sp,=4*1024 //设置时钟 //bl Init_system_clock //执行main bl main halt: b halt CLOSE_WATCHDOG_S: //关闭看门狗 ldr r0,=0x53000000 ldr r1,=0x0 str r1,[r0] SYSTEM_CLCOK_INIT_S: //设置时钟 //设置系统锁定时间 ldr r0,=0x4c000000 ldr r1,=0xFFFFFFFF str r1,[r0] //设置HCLK FCLK PCLK比例 ldr r0,=0x4c000014 ldr r1,=(0x2<<1)|(0x1<<0) str r1,[r0] //如果HDIVN非0 mrc p15,0,r1,c1,c0,0 orr r1,r1,#0xc0000000 mcr p15,0,r1,c1,c0,0 //时钟频率400MHZ ldr r0,=0x4c000004 ldr r1,=(0x5C<<12)|(0x1<<4)|(0x1<<0) str r1,[r0] 但是不调用 bl 则可以正常运行: .text .global _start _start: //关闭看门狗 bl CLOSE_WATCHDOG_S //设置系统锁定时间 ldr r0,=0x4c000000 ldr r1,=0xFFFFFFFF str r1,[r0] //设置HCLK FCLK PCLK比例 ldr r0,=0x4c000014 ldr r1,=(0x2<<1)|(0x1<<0) str r1,[r0] //如果HDIVN非0 mrc p15,0,r1,c1,c0,0 orr r1,r1,#0xc0000000 mcr p15,0,r1,c1,c0,0 //时钟频率400MHZ ldr r0,=0x4c000004 ldr r1,=(0x5C<<12)|(0x1<<4)|(0x1<<0) str r1,[r0] //设置栈 ldr sp,=4*1024 //设置时钟 //bl Init_system_clock //执行main bl main halt: b halt CLOSE_WATCHDOG_S: //关闭看门狗 ldr r0,=0x53000000 ldr r1,=0x0 str r1,[r0] file:///C:UsershpDocumentsTencent Files3295337651ImageC2CLXX4P46)P5HYPAYMJVJPM6R.jpg |
|
相关推荐
3 个讨论
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2172 浏览 6 评论
1978 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4535 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-12 05:01 , Processed in 0.729311 second(s), Total 60, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号