阅读:2011回复:11
U盘程序下载到ram中运行没有问题,烧到flash中就不行了
前一段时间,u盘程序开发好了,不过一直是download中运行得。效果还可以。五一回来后,把它烧到flash上运行,发现只能执行一部分,就停下来了。用bushound看了一下,发现有no reponse得信息包。是不是,在flash上运行太慢得原因啊。程序download到ram中运行一点问题都没有。请各位帮忙分析一下。
|
|
沙发#
发布于:2004-05-08 14:06
那种片子啊
|
|
|
板凳#
发布于:2004-05-08 14:20
arm7得mcu,usbn9604得usb控制芯片
|
|
地板#
发布于:2004-05-23 09:55
用户被禁言,该主题自动屏蔽! |
|
地下室#
发布于:2004-05-23 12:39
用户被禁言,该主题自动屏蔽! |
|
5楼#
发布于:2004-05-24 09:13
问题解决了吗?
是不是初始化程序有问题呀。 |
|
6楼#
发布于:2004-05-24 09:45
用户被禁言,该主题自动屏蔽! |
|
7楼#
发布于:2004-05-24 10:17
我用arm系统遇到过类似问题,可以参考一下。
最初,我的arm的flash中的程序为开发包自带的程序(我只有bin文件,没有源代码)。我用jtag下载我的程序(带有初始化程序)到sdram中仿真,程序正常运行。 然后,我把我的程序加上自己编的初始化程序直接烧到flash,结果发现出了一些莫名其妙的错误。 最后,我发现我的初始化程序对有些控制寄存器还没有配置。而因为最初仿真的flash中的bios.bin已经配置了,所以第一次才没有出错。 所以,我的建议是尽量把要配置的寄存器都好好配置一下。 当然,你的问题可能不在这里。 |
|
8楼#
发布于:2004-05-24 10:24
我想你有可能是有关flash的设置有问题或,你的flash和你的usb的片选等有冲突
|
|
9楼#
发布于:2004-05-24 10:49
用户被禁言,该主题自动屏蔽! |
|
10楼#
发布于: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=.; 我的程序是按照这种脚本文件进行链接的,我也咨询过那个编译器的技术支持,他也没有弄清楚。 后来我进入跟踪调试发现,程序在读写全局可写变量的值的时候有问题,读出来的都是乱码值,可能是我的程序在内存数据初始化和拷贝那个地方有问题。 |
|
11楼#
发布于:2004-05-24 12:17
用户被禁言,该主题自动屏蔽! |
|