新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Redboot修改实例

Redboot修改实例

作者:时间:2012-07-25来源:网络收藏

l) write (16'h00Fb, 16'h4444);

m) write (16'h00Fc, 16'h3333);

n) write (16'h00Fd, 16'h2222);

o) write (16'h00Fe, 16'h1111);

p) write (16'h00Ff, 16'h0000);

以上16条命令将16个16bit的数据分别存入cpu_buffer的地址0xF0~0xFF。

q) write (16'hf002, 16'h3c3f);

r) write (16'hf001, 16'hffff);

以上两条命令将CPU_BUFFER_OFFSET设为0xF0,将SDRAM_ADDR (SDRAM_ADDR_H, SDRAM_ADDR_L)设置为0x3FFFFF。

s) write (16'hf000, 16'h0073);

将CPU_BURST_LENGTH设置为7(实际写入为8),CPU_RW为“1”表示当前操作为写SDRAM,ACT为“1”表示立即启动当前操作。

t) read (16'hf000);

读取CONTROL_REG的数值,当ACT为“0”时,表示之前存入cpu_buffer 0xF0~0xFF的16个16bit的数据,已经被写入SDRAM中起始地址为“0x3FFFFF”的连续的8个地址中(SDRAM的数据宽度为32bit)。

main.c的

这一部分的主要目的是为了提供三条控制台命令“autoconfig”“update”“autoexec”。

增加命令

RedBoot_cmd(autoconfig,

autoconfig

,

do_autoconfig);

RedBoot_cmd(update

update,

,

do_update);

RedBoot_cmd(autoexec,

autoExec,

,

do_autoexec);

增加函数:

void do_autoconfig(int argc, char *argv[])

void do_update(int argc, char *argv[])

void do_autoexec(int argc, char *argv[])

增加全局变量

configFlag

updateFlag

execFlag

函数do_autoconfig()的主要内容

1. 设置configFlag为True

2. 调用fconfig –i

3. set Run script. at boot is false

4. set Use BOOTP for network configuration: false

5. set Gateway IP address

6. set Local IP address

7. set Local IP address mask

8. Default server IP address

9. set DNS server IP address

10. eth0 network hardware address

11. set GDB connection port

12. 设置configFlag为Flash

函数do_update()的主要内容

1. 设置updateFlag为True

2. 调用fconfig -i

3. 初始化Flash

4. 更新zimage 到 /dev/mtdblock2

5. 更新root 到 /dev/mtdblock2

6. 更新usr 到 /dev/mtdblock2

7. 更新config 到 /dev/mtdblock2

8. 更新chip 到 /dev/mtdblock2

9. 更新logo 到 /dev/mtdblock2

10. 设置updateFlag为Flash

函数do_autoexec()的主要内容

1. 设置execFlag为True

2. 调用fconfig -i

3. set Run script. at boot is true

4. set Use BOOTP for network configuration: false

5. set Gateway IP address

6. set Local IP address

7. set Local IP address mask

8. Default server IP address

9. set DNS server IP address

10. eth0 network hardware address

11. set GDB connection port

12. 设置execFlag为Flash

完成以上工作后,再对flash.c,io.c进行相关便可生成redboot可执行文件。注意,编译代码时最好使用arm-elf-gcc。


上一页 1 2 下一页

关键词: 实例 修改 Redboot

评论


相关推荐

技术专区

关闭