4404|3

3

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

基于飞思卡尔MCF51JM128 USB Bootloader [复制链接]

大家好
    我想请教一下,我看了一些文档关于USB Bootloader都是叫做MSD Bootloader,其过程是将单片机当做从机,电脑当做主机,然后将S-record文件放入并解析,最后烧入单片机。我现在想实现直接利用U盘将S19文件放入U盘,通过U盘将程序烧入单片机,现在我已经实现了将S19文件读出并解析,但是在擦写和烧入过程中总是出现程序出错跑飞,也不知道为什么。
通过调试,我发现问题渐渐明白,这个和写Flash和擦Flash都没有关系,是正常的,没问题的,现在的问题是由于这个USB Bootloader需要文件系统,通过不断的读数据,将数据烧写入Flash,但是现在的问题是由于我的Bootloader的代码位置从Flash地址0X00000410-0X0006FFF。后面的地址存放的是我应用程序的代码,这个应用程序不大大概是0X00007000-0X00007C00.我发现进行块擦除的时候,从地址0X00007000-0X000073FF和0X00007800-0X00007BFF这两块连续擦除是没问题的,但是一旦擦除地址0X00007400-0X000077FF就会出现Bootloader段的代码程序跑飞,就是文件系统进行读数据时出现问题(也就是运行F_read这个函数时出现问题)。我很奇怪,我应用程序的代码和Bootloader的代码是彼此独立的,并且是放在不同地址块的,并且Bootloader代码已经进行了保护,按道理,我擦除应用程序代码和Bootloader的代码一点关系都没有啊?为什么会影响Bootloader代码段的文件系统。
我所使用的软件是codewarrior6.1,经过调试我发现了,在进入F_read这个函数时,通过反汇编可以看出,它会突然跳转到0X00007798这个地址,运行了一段CF_runtime.c里面的程序。不是很了解CF_runtime.c的文件,也不知道怎么才能解决。还请前辈大神给予指点帮助啊!谢谢啦
此帖出自NXP MCU论坛

最新回复

楼主 怎么解决的  分享一下啊。。。。  详情 回复 发表于 2015-7-13 11:42
点赞 关注
 

回复
举报

3

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
终于解决了
此帖出自NXP MCU论坛
 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
能否分享下代码
此帖出自NXP MCU论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

4
 
楼主 怎么解决的  分享一下啊。。。。
此帖出自NXP MCU论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表