7235|10

61

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

Nor Flash启动问题 [复制链接]




请教各位大侠个问题:
我做了一个bootloader程序,目的是将该程序下载至nor flash,通过它烧写应用程序到nor flash,现在的现象是这样的,
我利用ADS在RAM中调试该程序时,上位机串口下载,程序正常执行,应用程序的确下载到我的目标地址,说明程序应该是正确的;然后将bootloader程序程序烧写到nor flash,然后通过上位机下载,没有下载成功。我在bootloader中对FLASH的第一个操作ERASE中做这样的操作,刚进入该ERASE函数模块,通过串口输出字符,擦除命令结束后再通过串口输出字符,在RAM中调试这2个字符都可以输出,将程序固化到FLASH,第一个字符可以输出,第2个无法输出,我开始怀疑是不是擦除有问题,可是程序明明在RAM中可以正常执行的,后来我在ERASE之前加入检测FLASH ID操作,同样也是在命令操作前后各输出一个字符,结果发现只有操作命令前的字符可以输出,也就是说将程序固化到FLASH后,执行完第一个对flash的操作后,就出问题了,由于小弟经验尚浅,不知道问题到底出在哪里?还请高人帮忙分析分析?注:程序在RAM中调试都是没问题的。

最新回复

看一下关于flash章节的描述,对flash操作是不是有什么条件  详情 回复 发表于 2010-6-13 13:45
点赞 关注

回复
举报

65

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
你擦出的地址跟你的Bootloader是不是在同一个Nor Flash Bank上?在同一个Bank上是不可以这样操作的
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
你的想法很好!你还在上学吗?还是已经工作了?
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(中级)

4
 
BOOTLOADER 程序进行FLASH擦除时还在nor flash上面运行么?对FLASH的操作时程序最好已经运行在RAM上面了,
那样的话升级你的BOOTLOADER也很方便!!
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 1 楼 beyondjdg 的回复:
你擦出的地址跟你的Bootloader是不是在同一个Nor Flash Bank上?在同一个Bank上是不可以这样操作的


我用的是AT91FR40162芯片,这块芯片内部集成了一个AT49BV1604A(NOR FLASH),大小2MB,里面没有BANK的概念,这个FLASH芯片内部的Secter是这样划分的前8个扇区每个是8K,后面有31个64K的扇区,我是打算将Bootloader固化到前8个扇区,将自己的应用程序固化到第9个扇区。启动程序运行后后加载我的应用程序
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 3 楼 xingjidazhan 的回复:
BOOTLOADER 程序进行FLASH擦除时还在nor flash上面运行么?对FLASH的操作时程序最好已经运行在RAM上面了,
那样的话升级你的BOOTLOADER也很方便!!


当然不是,我将BOOTLOADER 程序固化到flash,当给板子加电后,启动代码会在瞬间将程序拷贝至ram中运行的。现在的问题就是程序在RAM中调试都是好的,烧写到FLASH后,就运行不正常。不知道是什么原因导致的。
 
 
 

回复

71

帖子

1

TA的资源

一粒金砂(初级)

7
 
引用 5 楼 clonehe 的回复:

引用 3 楼 xingjidazhan 的回复:
BOOTLOADER 程序进行FLASH擦除时还在nor flash上面运行么?对FLASH的操作时程序最好已经运行在RAM上面了,
那样的话升级你的BOOTLOADER也很方便!!


当然不是,我将BOOTLOADER 程序固化到flash,当给板子加电后,启动代码会在瞬间将程序拷贝至ram中运行的。现在的问题就是程序在RAM中调试……
你确认代码也会被拷贝到RAM执行吗?
另外,“在RAM中调试这2个字符都可以输出”,你如何在RAM中调试的?你手动将代码搬移到RAM中的吗?我想学习一下~这里边跑的程序,是跟固化在nor中的一样吗?
如果2M大小,你的nor flash,可能是single bank~
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 6 楼 beyondjdg 的回复:

引用 5 楼 clonehe 的回复:

引用 3 楼 xingjidazhan 的回复:
BOOTLOADER 程序进行FLASH擦除时还在nor flash上面运行么?对FLASH的操作时程序最好已经运行在RAM上面了,
那样的话升级你的BOOTLOADER也很方便!!


当然不是,我将BOOTLOADER 程序固化到flash,当给板子加电后,启动代码会在瞬间将程序拷贝至r……
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(中级)

9
 
你把执行完命令后打印字符之后加个while(1);试试
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

10
 
bootloader加载到RAM有没有问题?
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

11
 
看一下关于flash章节的描述,对flash操作是不是有什么条件
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表