打印
[应用相关]

spi3接SD卡做IAP升级程序遇到挑卡、不能正确跳到应用程序

[复制链接]
829|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
SUNKE9|  楼主 | 2015-9-22 15:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在用STM32F103RCT6的SPI3接SD卡做自动升级程序的项目,现在遇到两个问题:
问题1.我的文件系统是FATFS,SPI速度已经设到系统时钟/256没法再低了,系统时钟是72M,SD卡用的是FAT32格式用读卡器在电脑上可以正常读写,也反复格式化过,我手里是2张SD卡,一张是4G Lexar品牌,一张是8G SANDISK品牌,都是SDHC ②的卡,现在4G的卡在我的程序里可以初始化,可是提示打开文件目录错误。8G卡就正常,可以初始化,可以读文件目录、文件大小、读出具体的BIN和HEX文件。我这张有问题的4G卡在一块SDIO模式的开发板上可以初始化,可以读文件目录、文件大小、读出具体的BIN和HEX文件。我自己分析问题可能处在SPI上,但是会有什么问题呢?读8G卡已经正常了,还有什么地方能导致挑卡的现象?请做过的朋友给指点一下。
问题2.我写了一个简单的APP就是应用程序,内容是通过串口向电脑发送一些字符串证明程序在运行了。把应用程序设置好起始flash地址到0x8010000大小0x30000编译完以后转成BIN文件考到SD卡中,再用我的Iap程序升级,发现程序正常,程序先运行IAP程序,然后把SD卡中的应用程序升级到FLASH中,最后运行应用程序在串口打出字符。到这我的IAP程序应该是正常了,我把我项目需要用的APP应用程序78kB也是同样设置生成BIN文件,升级到FLASH 中就运行不了,用JLINK仿真看程序在跳往APP程序地址0x8010000以后就进入HardFault_Handler(void)中断,没法继续运行了。谁有解决方法,请帮帮我,我在这卡住很长时间了。

沙发
yklstudent| | 2015-9-22 17:40 | 只看该作者
中断向量偏移要设置下的;NVIC_SetVectorTable这个函数,楼主自己去了解下

使用特权

评论回复
板凳
毁灭2012| | 2015-9-22 20:32 | 只看该作者
用JLINK仿真看程序在跳往APP程序地址0x8010000以后就进入HardFault_Handler(void)中断,没法继续运行了???为什么啊?

使用特权

评论回复
地板
xia00| | 2015-9-22 20:53 | 只看该作者
8G和4G除了内存大小的区别还有什么不同啊??

使用特权

评论回复
5
会飞の鱼| | 2015-9-22 21:01 | 只看该作者
嗯恩 应该是中断向量没有设置好吧。哈哈

使用特权

评论回复
评分
参与人数 1威望 +4 收起 理由
SUNKE9 + 4
6
SUNKE9|  楼主 | 2015-9-23 16:58 | 只看该作者
会飞の鱼 发表于 2015-9-22 21:01
嗯恩 应该是中断向量没有设置好吧。哈哈

基本是你说的情况,我把FLASH_BASE也改成0x8010000就好了。

使用特权

评论回复
7
gejigeji521| | 2015-9-23 19:41 | 只看该作者
IAP程序自动读取SD卡文件的头信息,判断版本号,是否是新的,然后确认升级。

使用特权

评论回复
8
拉克丝| | 2015-9-23 20:05 | 只看该作者
中断向量没有设置好吧

使用特权

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

本版积分规则

个人签名:执着!

48

主题

349

帖子

1

粉丝