Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
Bootloader
IAP问题
发布于 2014-09-25 09:41:30 浏览:3651
订阅该版
各位, 我参考stm32f4_iap_using_usart把FLASH擦写的代码移植到自己的产品里面,希望能够开机自动把TF卡的bin文件烧录到SPI-FLASH里面。 boot---0x8000000~0x8004000 APP---0x8004000~0x080FFFFF 测试发现: 1)FLASH_If_Erase(APPLICATION_ADDRESS);会卡死 2)使用FLASH_If_Write(&flashdestination, (uint32_t*) ramsource, (uint16_t) packet_length/4) 升级和烧录到SPI-FLASH里面一样的rtthread.bin没有问题,但是升级不一样的rtthread.bin则直接出错。 请问是什么原因?如何解决呢?我们需要做TF卡升级APP,希望开机自动检测TF卡上是否有升级文件,有则自动擦写升级。 补充:rtthread.bin采用的是romfs。
查看更多
5
个回答
默认排序
按发布时间排序
aozima
2014-09-25
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
没听明白楼主到底说的啥。 建议单步调试并多分析。
bjhdtv
2014-09-25
这家伙很懒,什么也没写!
感谢回复,我的意思就是说目前STM32F4板子上面的SPI-FLASH有Boot区域+APP区域,然后希望板子启动之到APP之后,能够mount TF卡,检测是否有升级文件rtthread.bin,有的话,则循环读取该文件,每次读256bytes,擦写到APP区域,全部擦写完毕,则跳转重启。 目前碰到的问题是:循环读取该文件,擦写到APP区域,FLASH_If_Write就挂掉了。 APP启动之后,能否自己擦写自己? 补充: 1)TF卡里面的rtthread.bin文件和烧入到APP一样,则反复写都没问题;一旦TF卡里面的rtthread.bin文件和烧入到APP不一样,则挂了。 2)APP是采用romfs,TF卡是fat32文件系统 3)附上代码: [code]if (dfs_file_open(&src_fd, "/sd/rtthread.bin", DFS_O_RDONLY) < 0) { rt_kprintf("Open %s Failed ", "/sd/rtthread.bin"); return ; } else { rt_kprintf("Open %s OK,src_fd.size=%d ", "/sd/rtthread.bin",src_fd.size); } if (src_fd.size > (USER_FLASH_SIZE + 1)) { rt_kprintf("src_fd.size=%d > %d ",src_fd.size,USER_FLASH_SIZE+1); return ; } /*rt_kprintf("FLASH_If_Erase start "); FLASH_If_Erase(APPLICATION_ADDRESS); rt_kprintf("FLASH_If_Erase over ");*/ rt_hw_interrupt_disable(); do { memset(block_ptr,0,BUZZER); read_bytes = dfs_file_read(&src_fd, block_ptr, BUZZER); if (read_bytes > 0) { //write_spiflash(block_ptr,read_bytes); //dfs_file_write(&fd, block_ptr, read_bytes); ramsource = (uint32_t)block_ptr; packet_length=BUZZER; totle_length+=read_bytes; /* Write received data in Flash */ if (FLASH_If_Write(&flashdestination, (uint32_t*) ramsource, (uint16_t) packet_length/4) == 0) { rt_kprintf("write ok:%d,allszie=%d ",packet_length,totle_length); } else /* An error occurred while writing to Flash memory */ { rt_kprintf("write err:%d,allszie=%d ",packet_length,totle_length); return ; } } } while (read_bytes > 0); dfs_file_close(&src_fd); rt_thread_delay(RT_TICK_PER_SECOND * 3); rt_kprintf("FLASH_If_Write over:%d bytes,Now reboot ",totle_length); if (1) /* execute the new program */ { JumpAddress = *(__IO uint32_t*) (APPLICATION_ADDRESS + 4); /* Jump to user application */ Jump_To_Application = (pFunction) JumpAddress; /* Initialize user application's Stack Pointer */ __set_MSP(*(__IO uint32_t*) APPLICATION_ADDRESS); Jump_To_Application(); }[/code]
bjhdtv
2014-09-25
这家伙很懒,什么也没写!
上面的代码rt_hw_interrupt_disable(); 是多余,刚才调试使用的。
bjhdtv
2014-09-25
这家伙很懒,什么也没写!
TF卡升级固件不是在Boot里面做的,而是在APP里面做的。boot里面没有rt-thread,只是参考stm32f4_iap_using_usart简单改了下。不知这个方案是否可行? 谢谢
撰写答案
登录
注册新账号
关注者
0
被浏览
3.7k
关于作者
bjhdtv
这家伙很懒,什么也没写!
提问
9
回答
14
被采纳
0
关注TA
发私信
相关问题
1
Linux下通过USBTinyISP为Arduino开发板烧?写Bootloader
2
请教修改NVIC后RTT调度函数失效的问题[已解决 bootloader中打开了不必要的中断]
3
进入bootloader的方式探讨
4
求助:IAP里的APP使用的RTT,跳转后出错。[已解决]
5
有没有人在STM32F103上用UART IAP跑过RT-Thread?
6
想做网口的IAP远程升级,不知可不可行
7
[已解决]请教基于RTT的IAP程序切换到应用程序不成功的问题(基于STM32F4)?
8
stm32f4xx-----IAP移植APP程序需要注意的地方
9
在调试IAP网络升级遇到跳转之后bootloader程序网络不通
10
stm32f103+dm9000的IAP操作
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
五分钟玩转RT-Thread新社区
5
国产MCU移植系列教程汇总,欢迎查看!
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
ulog组件多端绑定的demo案例
2
记录rt-thread消息队列的调试方法
3
AT32的ADC使用
4
aht10 终端:The aht10 is under an abnormal status
5
github高阶加速,速度可达带宽峰值,测试到146Mbit/s
热门标签
RT-Thread Studio
串口
LWIP
Env
AT
SPI
Bootloader
FinSH
ART-Pi
CAN总线
Hardfault
USB
文件系统
RT-Thread
DMA
SCons
线程
MQTT
RT-Thread Nano
STM32
RTC
rt-smart
ESP8266
flash
ota在线升级
WIZnet_W5500
FAL
I2C
packages_软件包
UART
cubemx
freemodbus
潘多拉开发板_Pandora
定时器
BSP
PWM
ADC
socket
中断
rt_mq_消息队列_msg_queue
keil_MDK
SDIO
Debug
AB32VG1
MicroPython
编译报错
C++_cpp
msh
ulog
QEMU
本月问答贡献
出出啊
1501
个答案
338
次被采纳
小小李sunny
1390
个答案
276
次被采纳
张世争
715
个答案
157
次被采纳
crystal266
522
个答案
153
次被采纳
whj467467222
1216
个答案
146
次被采纳
本月文章贡献
出出啊
1
篇文章
12
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
2
篇文章
2
次点赞
crystal266
2
篇文章
5
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部