uboot初步-01

步骤:

1、选择合适的uboot版本

2、uboot修改

3、交叉编译出bin文件

4、烧写到SD卡或flash中

uboot的版本选择
在uboot中IP内核称为CPU 内核外围的各种外设称为broad


 可在S5PV210上参考使用的uboot版本:goni

中断和异常的区别:

中断可以被cpu忽略,但是异常必须被执行

异常的优先级高于中断。

异常的类型:

1、undefined_instruction 未定义指令
2、software_interrupt      软中断
3、prefetch_abort            预取值中止
4、data_abort                  数据中止
5、irq                               普通中断
6、fiq                                快中断

 uboot之SPL:
   u-boot基本大小在200KB左右,而S5PV210的内部SRAM只有96KB,因此将u-boot做为两个镜像:u-boot.bin   uboot_spl.bin。uboot_spl.bin(BL1)载入内部SRAM中运行(同时初始化外部SDRAM),然后将u-boot的大头u-boot.bin直接加载到外部SDRAM中,最后由内部SRAM跳转到外部SDRAM内存中u-boot.bin的首地址去运行。

 PL0(Privilege mode 0)    usr模式:处理器正常的程序执行状态
 PL1            sys模式
              superviser模式
              IRQ模式
              FIQ模式
              Abort模式(数据访问终止模式)
PL2            Hyper模式
制作uboot烧写镜像:
1、编译文件:
make S5P_goni_config
make
2、提取前16K内容:
./mkv210 u-boot.bin   u-boot.16k
3、拷贝PC终端文件至SD卡指定位置:

1 sudo dd iflag=dsync oflag=dsync if=u-boot.16k of=/dev/sdb seek=1
2 //iflag:input flag   oflag:output flag
3 //if :input file(源文件)       of:output file(目标文件)
4 //seek=1   :从第一个扇区开始写入 

在此也可以建立批处理文件来执行上面指令:新建文件bornSD.sh

1  #!/bin/bash
2 
3 ./mkv210 u-boot.bin u-boot.16k
4 sudo dd iflag=dsync oflag=dsync if=u-boot.16k of=/dev/sdb seek=1
5 sudo dd iflag=dsync oflag=dsync if=u-boot.bin of=/dev/sdb seek=49

之后修改文件模式为可执行:chmod a+x bornSD.sh。之后只需执行bornSD.sh即可执行上面三条指令。

Linux环境下复制一个文件的一部分内容值另一个文件的方法:(A--->B)
1、在源文件A的vim命令行下输入:”变量名行数yy“    如”a3yy“
2、打开B文件                  ”变量名p“    如"ap"

代码调试指令:objdump 、hexdump

反汇编查看文件(输出C源代码和反汇编出来的指令对照的格式)  arm-linux-objdump -S  文件名

在管道中查看:arm-linux-objdump -S 文件名|less


                  


  

原文地址:https://www.cnblogs.com/embeded-linux/p/10146159.html