1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在调试STM32时,总是发现跳不到Main函数,我在Debug模式下,全速运行时,很快就会停止。看汇编程序,发现在跳到Main函数时,此时地址不对(没有对齐)。忙了很久,才发现原来这是因为我移值printf函数时,出现的问题。在移植printf函数时需移植fputc函数,如下:
int fputc(int ch,FILE *f) { USART_SendData(USART1,(u8)ch); while(USART_GetFlagStatus(RS232,USART_FLAG_TC)==RESET) //重定向到RS232口---USART2 { } return ch; } 在裸奔时,移植这些就可以了,我调试printf,没有发现任何问题。但当我把她移植的uCOSII(V 2.86)上时,就出现了上面的问题。在网上搜了下,发现了雪影之风博友的一片博文中提到。解决方法如下: 使用了printf之类的库函数,需要编写_sys_exit()之类底层函数。_sys_xxx之类的的只要写个空函数就行了。 因printf()之类的函数,使用了半主机模式。使用微库的话,不会使用半主机模式,所以就没有问题。 添加下面代码,就可以使用标准库了: #pragma import(__use_no_semihosting) _sys_exit(int x) { x = x; } struct __FILE { int handle; }; FILE __stdout; 以上问题可在 在"RealView? 编译工具库和浮点支持指南"书中找到。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1780 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1081 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1679 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
731浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
596浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
556浏览 3评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 03:37 , Processed in 1.123054 second(s), Total 78, Slave 62 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号