Redboot修改实例
write (16'h00F2, 16'hcccc); d) write (16'h00F3, 16'hdddd); e) write (16'h00F4, 16'heeee); f) write (16'h00F5, 16'hffff); g) write (16'h00F6, 16'h5555); h) write (16'h00F7, 16'h6666); i) write (16'h00F8, 16'h9999); j) write (16'h00F9, 16'h7777); k) write (16'h00Fa, 16'h8888); 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可执行文件。注意,编译Redboot代码时最好使用arm-elf-gcc。
- 国外现场总线应用实例两则(12-21)
- 三菱PLC编程技巧及实例图解(12-19)
- 单片机的七个创意设计实例(从易到难),附电路图、源代码、演示视频(06-11)
- PCI驱动程序开发实例(02-21)
- 51单片机做信号发生器实例编程(01-16)
- 简单的单片机I/O口扩展实例(05-18)