完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
puts函数是这么写的:
int puts(const char *s) { while(*s) { putchar(*s); s++; } while((UTRSTAT0&(1<<2))==0){}//循环等待BUFFER和移位器里都为空 } 正常模式下可正常打印,但是进了und中断后就没反应了,出了中断又正常了。 现在发现只要把后面的while语句去掉就没问题了: int puts(const char *s) { while(*s) { putchar(*s); s++; } } 请问有大神知道原因吗。 |
|
相关推荐
3个回答
|
|
|
韦老师本人吗,好激动。测试了好多次确定是它导致的,到最后也没找到原因,暂时搁置了。
现在学习uboot又遇到问题了,求助老师!您啥时候有时间帮我解答下: 我在网上看到好多资料(论坛 博客都看了)都说: 在制作镜像头以及下载地址就有两种情况: 1) mkimage -n 'linux-2.6.14' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d zImage uImage 加载地址和入口地址相同 tftp 0x31000000 uImage bootm 0x31000000 下载地址可以任意放. 2) mkimage -n 'linux-2.6.14' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d zImage uImage 入口地址在加载地址后面64个字节 tftp 0x30008000 uImage bootm 0x30008000 下载地址一定要在指定的加载地址上. //-------------------------------------------------------------- 第一个没有疑问, 第二个百思不解,假设下载地址等于加载地址等于0x30008000,那么从do_bootm()函数开始分析: 1. addr = simple_strtoul(argv[1], NULL, 16); //取出第二参数0x30008000,也就是下载地址 2. data = addr + sizeof(image_header_t); //也就是data=下载地址+64字节 3. if(ntohl(hdr->ih_load) == data) { ... } //这里就没法成立了,因为data比ih_load大了64字节 不知道我哪里理解错误了,请老师帮我解惑哈! |
|
|
|
|
|
手机码字 可能排版不太工整
|
|
|
|
|
|
https://www.cnblogs.com/jason-lu/articles/3120781.html 这个是原地址
|
|
|
|
|
只有小组成员才能发言,加入小组>>
296个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2471 浏览 6 评论
2208 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4835 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-12 06:05 , Processed in 0.810714 second(s), Total 79, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2225