这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 44b0用JTAG调试时挺好, 烧写到flash里面就没反应了!

共9条 1/1 1 跳转至

44b0用JTAG调试时挺好, 烧写到flash里面就没反应了!

菜鸟
2005-03-04 19:40:35     打赏

jtag调试的时候 串口输出信息 led正常控制

可是用flashp3.1烧写进去的时候 串口一点反应也没有~~

rom_base改为0x00 了 其它的都照着改了 板子也没有问题 是好的

大家看可能是哪个地方有问题啊!




关键词: 调试     挺好     写到     flash     里面     反应    

菜鸟
2005-03-07 21:41:00     打赏
2楼

呜呜 自己顶一个

听人说是因为flash速度比sdram慢的缘故

要加什么延时~~

大家没碰到这种情况吗?


菜鸟
2005-03-07 23:50:00     打赏
3楼

检查代码段有没有重定位,如果有的话,重定位前后的地址是否正确;

再检查数据段的重定位代码。


菜鸟
2005-03-08 18:33:00     打赏
4楼

谢谢斑竹

斑竹是说看看rom_base , ram_base设置对了没有是吧

这个应该是对的 对其余的代码也是这样设置的 都没问题

是不是PLL设置的问题啊


菜鸟
2005-03-08 22:06:00     打赏
5楼
不光是设ram_base,你的数据段起先肯定是存放在flash里的,但肯定要放到ram里才能用。调试的情况下,整个image是直接载入ram的,但如果从flash运行就得靠程序来重定位数据段。

菜鸟
2005-03-09 04:08:00     打赏
6楼

[img]C:\Documents and Settings\Administrator\桌面\{3E78EAB3-6832-4F49-9156-0CBB607A489C}0.bmp[/img]

板子就是"龚板" bank0(0X00000000起始)接2M flash bank6(0X0C000000起始) 接8M sdram

另外,bootloader就是samsung提供的bootloader .

关于数据的重定位, 整个bootloader中只有把程序的数据段拷贝到rw_base处 以及把 ZI 区域初始化为0. 如图:

[img]C:\Documents and Settings\Administrator\桌面\{31682DA2-E7ED-48A8-8CA9-5338675E3FF5}0.bmp[/img]

斑竹看看有什么不对的~~~

另外,上电后LED灯就点亮. 在串口输出之前还有让LED灯熄灭的操作, 但烧进去后运行, LED没有熄灭!

jtag remote调试的时候,一切正常~~

[align=right][color=#000066][此贴子已经被作者于2005-3-8 20:36:48编辑过][/color][/align]

菜鸟
2005-03-10 02:04:00     打赏
7楼

各位老大!

我找了一个可以运行的程序, save as template ,再重新加载程序 , 烧进去后, led 灯是好的了 , 可以控制!

但是串口还是没反应啊~~


菜鸟
2005-03-10 02:50:00     打赏
8楼

各位老大!

原因是这样的! 运行到 rUBRDIV0 =((int)(mclk/16/baud + 0.5) -1 ); 这条语句过不去

不知道为什么过不去 那调试的时候为啥过得去?


菜鸟
2005-03-11 06:45:00     打赏
9楼

各位老大

我又来了! 被折腾的不行了之后终于知道是哪里的问题了!

我用的是优龙的一个uart测试程序, 里面对存储器寄存器的设置是通过这样的语句进行的: ;**************************************************** ;* Set memory control registers * ;**************************************************** ldr r0,=SMRDATA ldmia r0,{r1-r11} ldr r0,=0x01c80000 ;BWSCON Address stmia r0,{r1-r11}

它上面写的是r1-r11

应该是r1-r13, 漏掉了对最后两个寄存器 MRSR6,7 进行设置

就是这样一个小地方 ..... 改过来就好了 串口就很正常了

为什么要写成r1-r11 ? 估计是根据这下面句话有关系 :

NOTE: MRSR register must not be reconfigured while the code is running on SDRAM.

可能在debug模式 程序在dram里面运行的时候 不需要设置这两个寄存器, 的确调试的时候真的很正常.

再具体的原因就对我来说太深奥了~~~

反正最后明白了一点: 原因都是有原因的 !

[align=right][color=#000066][此贴子已经被作者于2005-3-10 22:46:30编辑过][/color][/align]

共9条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]