新手上路
- 积分
- 48
- 金钱
- 48
- 注册时间
- 2019-1-25
- 在线时间
- 6 小时
|
1金钱
我用的是STM32F103VBT6,用IAR编译,想要加一个printf串口打印。USART测试是没有问题,可直接输出16位的数据。
我按照网上步骤做了一遍
- 重定向C库函数printf到USART1
- Options->C/C++ Complier->Preprocessor->Defined symbols添加:_DLIB_FILE_DESCRIPTOR
- Options->General Options->Library Configuration->Library中先FULL,获取完整C库支持
- 包含头文件stdio.h
简单写了一个printf("1") ,发现在进入main前卡住了。
__iar_program start:
0x80075e8: 0x46c0 MOV R8,R8
0х80075eа: 0x46с0 MOV R8,R8
0x80075ec: 0x45c0 MOV R8,R8
0x80075ee: 0x46c0 MOV R8,R8
0x80075f0: Oxf7ff Oxff9a BL ?main //执行完这句话进入了硬件错误HardFaultException()
但我不在程序里调用printf(),就能正常运行。
这是正常运行时进入面前数据。
__iar_program start:
0x8006a88: 0x46c0 MOV R8,R8
0х8006a8а: 0x46с0 MOV R8,R8
0x8006a8c: 0x45c0 MOV R8,R8
0x8006a8e: 0x46c0 MOV R8,R8
0x8006a90: Oxf7ff Oxffac BL ?main
求大神帮忙看看。
|
|