bbiliu
驱动牛犊
驱动牛犊
  • 注册日期2004-02-20
  • 最后登录2005-01-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2013回复:11

U盘程序下载到ram中运行没有问题,烧到flash中就不行了

楼主#
更多 发布于:2004-05-08 14:03
    前一段时间,u盘程序开发好了,不过一直是download中运行得。效果还可以。五一回来后,把它烧到flash上运行,发现只能执行一部分,就停下来了。用bushound看了一下,发现有no reponse得信息包。是不是,在flash上运行太慢得原因啊。程序download到ram中运行一点问题都没有。请各位帮忙分析一下。
tyant
禁止发言
禁止发言
  • 注册日期2004-03-17
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分74652分
  • 威望373563点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-05-24 12:17
用户被禁言,该主题自动屏蔽!
bbiliu
驱动牛犊
驱动牛犊
  • 注册日期2004-02-20
  • 最后登录2005-01-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-05-24 12:03
问题还没有解决,暂时放在那里。
不过我们可以讨论一下这方面的问题。
一般的ARM都有MMU和NOMMU两种内存方式,MMU这里先不讨论。在nommu下,一般我们使用flat bin的文件格式,也就是如下格式:
.text
.data(rodata,rwdata)
.bss
等几部分,分别对应代码(code)部分,数据部分(只读数据,可读写数据),bss部分。
其中已初始化全局变量放在data部分,未初始化全局变量放在bss部分。
在用arm的交叉编译工具编译时(如ADS,SDT等),要使用一个ldscript的链接脚本文件,指示编译器按照何种内存分配来链接文件,范例的脚本如下:
. = 0x000000;      //rom 的起始地址
Image_RO_Base =.;  
.text : {*(.text)} //代码段
Image_RO_Limit = .;
.rodata : {*(.rodata)} //只读全局变量(const )
. = 0xc000000          //RAM起始地址
Image_RW_Base =.;     //
.data: {*(.data)}    //全局可写数据
Imate_ZI_Base = .;
.bss :{*(.bss)}     //bss段。
Image_ZI_Limit=.;
Image_RW_Limit=.;
_bss_start_=.;
_bss_end=.;
我的程序是按照这种脚本文件进行链接的,我也咨询过那个编译器的技术支持,他也没有弄清楚。
后来我进入跟踪调试发现,程序在读写全局可写变量的值的时候有问题,读出来的都是乱码值,可能是我的程序在内存数据初始化和拷贝那个地方有问题。
tyant
禁止发言
禁止发言
  • 注册日期2004-03-17
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分74652分
  • 威望373563点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-05-24 10:49
用户被禁言,该主题自动屏蔽!
mercuryluo
驱动牛犊
驱动牛犊
  • 注册日期2003-12-16
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-05-24 10:24
我想你有可能是有关flash的设置有问题或,你的flash和你的usb的片选等有冲突
hustdj
驱动牛犊
驱动牛犊
  • 注册日期2003-06-06
  • 最后登录2008-07-02
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-05-24 10:17
我用arm系统遇到过类似问题,可以参考一下。
最初,我的arm的flash中的程序为开发包自带的程序(我只有bin文件,没有源代码)。我用jtag下载我的程序(带有初始化程序)到sdram中仿真,程序正常运行。

然后,我把我的程序加上自己编的初始化程序直接烧到flash,结果发现出了一些莫名其妙的错误。

最后,我发现我的初始化程序对有些控制寄存器还没有配置。而因为最初仿真的flash中的bios.bin已经配置了,所以第一次才没有出错。

所以,我的建议是尽量把要配置的寄存器都好好配置一下。
当然,你的问题可能不在这里。
tyant
禁止发言
禁止发言
  • 注册日期2004-03-17
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分74652分
  • 威望373563点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-05-24 09:45
用户被禁言,该主题自动屏蔽!
hustdj
驱动牛犊
驱动牛犊
  • 注册日期2003-06-06
  • 最后登录2008-07-02
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-05-24 09:13
问题解决了吗?
是不是初始化程序有问题呀。
tyant
禁止发言
禁止发言
  • 注册日期2004-03-17
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分74652分
  • 威望373563点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-05-23 12:39
用户被禁言,该主题自动屏蔽!
tyant
禁止发言
禁止发言
  • 注册日期2004-03-17
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分74652分
  • 威望373563点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-05-23 09:55
用户被禁言,该主题自动屏蔽!
bbiliu
驱动牛犊
驱动牛犊
  • 注册日期2004-02-20
  • 最后登录2005-01-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-05-08 14:20
arm7得mcu,usbn9604得usb控制芯片
SUNSHANGXIN
驱动老牛
驱动老牛
  • 注册日期2002-11-19
  • 最后登录2009-08-01
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望19点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-05-08 14:06
那种片子啊
[b]苍白的,不是文字,是人的思想 虚伪的,不是网络,是人的灵魂 伤心的,不是爱情,是人的心灵 难忘的,不是容貌,是人的思诀 黎明的曙光早已不见了夕日的辉煌 东方的日出早就失去了往日的灿烂 而我也尽脱了昨日的笑容去迎接明天的枯涩 [/b]
游客

返回顶部