打印

(快疯了!!!)stm32 固件库更新(程序移植)

[复制链接]
8803|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
(程序的移植v3.0版本固件库到v3.4版本)的问题,急求解释!
使用keil-arm-uv4编辑器,仿真器:J-Link
程序除了固件库外 原封不动,发现以下问题:

启动代码部分如下 :
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT SystemInit
IMPORT __main
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
新建工程,添加代码,编译运行  无任何问题,下载程序到板子上,结果没有得到应有的结果,于是,
硬件仿真:main函数不能执行,即程序只能执行到LDR R0, =__main,我在main()当中加了些断点,程序无法执行到其中的任何一个断点;
软件仿真:无任何问题;(求解释!)
沙发
guozhongwei|  楼主 | 2012-11-8 15:03 | 只看该作者
今天又用3.5版本的固件库试了下,同样是  编译器查不出错误,而且还无法下载,提示: Error: Flash Download failed - Could not load file '.. \ Output \ Adc_Usart_Tft_v3. 5
其中,“Adc_Usart_Tft_v3. 5”是我的文件名。不理解!

使用特权

评论回复
板凳
calvin0yang| | 2012-11-8 16:25 | 只看该作者
同样求高手解决库移植问题。

使用特权

评论回复
地板
LDTEST| | 2012-11-8 17:32 | 只看该作者
;P 感觉楼主的仿真器有问题

使用特权

评论回复
5
guozhongwei|  楼主 | 2012-11-8 21:29 | 只看该作者
仿真器一定没问题的,因为下载其他的程序,功能实现一切正常滴!

使用特权

评论回复
6
guozhongwei|  楼主 | 2012-11-8 21:31 | 只看该作者
仿真器一定没问题的,因为下载其他的程序,功能实现一切正常滴!

使用特权

评论回复
7
emouse| | 2012-11-9 09:06 | 只看该作者
对应的。s启动文件啥的都给换上,之前换过,没啥问题

使用特权

评论回复
8
guozhongwei|  楼主 | 2012-11-9 12:34 | 只看该作者
启动文件***_hd.s,没添加错,,,  原因依然不明!

使用特权

评论回复
9
guozhongwei|  楼主 | 2012-11-9 12:57 | 只看该作者
这个是我 移植的程序,源程序来自“野火” 固件库版本v3.0, 移植后的程序 固件库版本v3.4,其他内容无改动。。。  大家可以试一试,看看是不是出现我说的情况,  
; Reset handler
Reset_Handler   PROC
                EXPORT  Reset_Handler             [WEAK]
                IMPORT  __main
                IMPORT  SystemInit
                LDR     R0, =SystemInit
                BLX     R0               
                LDR     R0, =__main
                BX      R0        ; <-----这是启动代码,硬件调试:单步执行,
                ENDP               ;程序执行到这里就停止了。之后可能是跑飞了,
                                       ;总之,去向不明。

; Dummy Exception Handlers (infinite loops which can be modified)

Adc_Usart_Tft.rar

3.31 MB

使用特权

评论回复
10
guozhongwei|  楼主 | 2012-11-9 14:24 | 只看该作者
已找到解决办法!!!
原因:该程序涉及串口功能,程序 调用了 <stdio.h>,c 标准输出库函数,故需要在编译器target options--target中设置一个选项 Use MicroLIB,就ok了。

然后我又用v3.5版本的固件库试了下,又出问题了。。。。。。
提示:Error: Flash Download failed - Could not load file '.. \ Output \ Adc_Usart_
Output \ Adc_Usart_是我的工程名字。。。

使用特权

评论回复
11
guozhongwei|  楼主 | 2012-11-9 14:25 | 只看该作者
求解释。。。。

使用特权

评论回复
12
airwill| | 2012-11-9 15:09 | 只看该作者
stdio.h 涉及到一些输入输出和数据流的函数功能.
如果使用标准输出库函数, 就需要启动代码执行一些数据和堆的初始化工作.

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
guozhongwei + 1 so~so~ 精辟!
13
lei129210| | 2012-11-9 17:05 | 只看该作者
我一直用的3.5的为什么没有问题呢?

使用特权

评论回复
14
lei129210| | 2012-11-9 17:08 | 只看该作者
楼主,你的启动文件添加多了。。。。只要选择一种自己片子对应的启动文件就好啊。。。

使用特权

评论回复
15
guozhongwei|  楼主 | 2012-11-9 22:39 | 只看该作者
文件的添加情况一切正常!

使用特权

评论回复
16
guozhongwei|  楼主 | 2012-11-9 22:41 | 只看该作者
问题已解决。。。他奶奶的,这出错原因,令我无语啊!蛋疼

QQ截图20121109223315.jpg (52.41 KB )

QQ截图20121109223315.jpg

使用特权

评论回复
17
guozhongwei|  楼主 | 2012-11-9 22:49 | 只看该作者
这里的 可执行文件的命名,似乎是存在某种规则。。。。。(求解释)
总之是不可以 存在小数点,我之前使用的名字:***v3.5  
下载文件的时报错。。。?而且是那样子的提示!

使用特权

评论回复
18
hsbjb| | 2012-11-10 10:38 | 只看该作者
多谢LZ分享,很有用的经验

使用特权

评论回复
19
火箭球迷| | 2012-11-10 10:47 | 只看该作者
硬件问题的确是需要很大的耐心去解决,LZ解决的还是比较快的

使用特权

评论回复
20
pkat| | 2012-11-10 10:53 | 只看该作者
以前也碰到类似的问题,解决了很长时间

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

29

帖子

0

粉丝