这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 下载专区 » [原创]4510 bootloader的实现与分析 (附源代码)

共108条 7/11 |‹ 5 6 7 8 9 10 ›| 跳转至
菜鸟
2005-11-17 05:45:00     打赏
61楼

如果你的程序没有RW段的话,程序可以在FLASH中运行的,不过在FLASH里面运行比在SDRAM里面运行慢。如果你的程序有RW段的话,RO段可以在FLASH里头,不过RW段一定好拷贝到SDRAM里面去。最好的是,程序在SDRAM里面运行,这样RO段和RW段都在SDRAM里面,速度比较快。


菜鸟
2005-11-17 20:37:00     打赏
62楼

感谢twentyone大虾的解释,我还有两个问题想问问

1.如果RO在FLASH中运行,就不做REMAP,只需要把RW拷贝到SDRAM中去,同时在ADS中设置的RW 地址就必须大于0X0C000000(SDRAM接在BANK6上)

2.如果把RO和RW都要拷贝到SDRAM中运行,那么就必须做REMAP,并且ADS中设置的RW地址就必须在(RO BASE LIMIT)--0X00800000(SDRAM为8M)之间

请问以上两点理解正确吗?如果有错,请指正。

还有请问44B0的REMAP具体是怎么做到的呢?谢谢


菜鸟
2005-11-17 21:38:00     打赏
63楼

1. 你的理解是正确的;
2. 44B0不能做REMAP的,所以,如果你想把程序(RO+RW)拷贝到SDRAM里面去运行,需要做些别的处理。例如,你希望你的程序上电的时候从FLASH里面开始执行,然后程序用自拷贝把你的程序拷贝到SDRAM里面继续执行。你可以用这种方式实现:

你些两个独立的程序,一个程序的RO_BASE在FLASH里面;第二个程序的RO_BASE在SDRAM里面。第一个程序上电后执行,初始化SDRAM,并负责把第二个程序拷贝到SDRAM里面去,然后把控制权交给第二个程序;


菜鸟
2005-11-21 04:23:00     打赏
64楼

请问一下,remap前和后,下面这些寄存器的设置要相同的还是不同?
sdramcon0
romcon0
syscfg
extdbwth
srefextcon

之所以这样问,是因为我把你的和厂家带的boot对照了一下,发现有些不一样。romcon0是一样的。我把厂家的boot烧入flash中,可以用来调程序,可是用你的不行啊,那几行复制搬移语句一模一样的


菜鸟
2005-11-21 18:58:00     打赏
65楼

sdramcon0 前后不一样,BASE POINTER和NEXTPOINTER需要改变
romcon0 前后不一样,BASE POINTER和NEXTPOINTER需要改变
syscfg 前后一样
extdbwth 前后一样
srefextcon 前后一样

[align=right][color=#000066][此贴子已经被作者于2005-11-21 10:59:08编辑过][/color][/align]

菜鸟
2005-12-15 01:56:00     打赏
66楼
有幸看到,非常感谢

菜鸟
2005-12-16 03:18:00     打赏
67楼
感谢高手!!

菜鸟
2005-12-20 23:59:00     打赏
68楼

1. 在我的程序里面没有用到堆栈,如果你在C程序里面调用了别的C函数的时候,需要用到堆栈。在嵌入式开发里面堆栈的设置比较随意,只要保证安全就可以了,并不一定要设置在SDRAM的顶部。ARM的堆栈一般是降序的;
2. 是的,搬运了2次;
3. 如果你觉得有必要的话,你可以在BOOTLOADER里用中断,但一般不需要的;


菜鸟
2005-12-28 08:29:00     打赏
69楼
这个是个好东西

菜鸟
2005-12-28 18:06:00     打赏
70楼
好人

共108条 7/11 |‹ 5 6 7 8 9 10 ›| 跳转至

回复

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