嵌入式学习56-ARM5(linux驱动启动方式和流程)

知识零碎:   

     linux驱动3大类:                                                                                                                                                        1.字符设备驱动                                                                                                                                   2.块设备驱动                                                                                                                                       3.网络设备驱动                                                                                                                              

 bootm:                                                         启动内核同时给内核传参                                       setenv:                                                          添加环境变量 

setenv serverip    设置服务器IP                   saveenv   保存            uImage    linux内核程序

 

 chmod 使用权限 : 所有使用者 

 minicom指令:                                                       Ctrl+A+Q  退出                                                ?    查看minicom指令 

        md    0x30000000  内存查看命令                                  md.b  0x30000000                                            md和md.b内存产看区别(第一行数据)           

nb.b  0x30000000    内存修改(不自增)

mm.b  0x30000000         地址自增修改

                                                          

boot  loader  裸机程序                                                                                                                                                      作用: 一个引导程序,对硬件设置,调试

字处理软件   <-  office                                                                                                                         bootloder     <-   u-boot

u-boot:                                                                                                                                                          1. nor flash  启动      --------------tftp协议                                                                                            2. nand  flash 启动         

32位系统  2^32 = 4GB               寻址空间 4GB       使用空间  1GB

图中所示左右两个部分代表当用 OM[1:0] 选择了不同的启动方 式时,从2440 角度看到的地址分布,关键是看左右两张图的最下面,即地址0x00000000 出在选择不同方式启动时的差别:
1. 如果选择的是 nor-flash 启动 ( 左图 ) ,那么此时 nor-flash 的首字节地址就是0x00000000 ,也就是说第一条指令从 nor-flash 取;
2. 如果选择的是 nand-flash 启动 ( 右图 ) ,那么此时内部 iram 的首 字节地址就是0x00000000, 也就是说第一条指令要从内部 iram取。如果是这种情况的话,2440 在运行 iram 中的程序之前,它会自动把nand-flash 中的前 4KB 数据拷贝到 iram 去,这段程序是2440 固化好的,称之为“垫脚石”。既然是从 nand-flash拷贝过来的,那不就相当于是从 nand-flash 启动了么?

(左)Nor flash启动:                                                                                                                        1.从ROM地址0x00000000处 ,把uboot烧录到Nor flash                                                                   2.  uboot作为引导程序,引导cpu到Nor flash中运行                                                                

(右)Nand  flash启动: 从IRAM地址0x00000000处启动

IRAM大小为4KB,        SRAM(垫脚石)                                                          (可能会问)

Nand   flash 启动

1.启动时,uboot会将ROM和IRAM初始化0x00000000 

把uboot烧录进Nand flash,把Nand flash的uboot拷贝到IRAM中                                                       uboot作为引导程序,引导cpu到IRAM中运行,此时运行的就是uboot

 2.uboot初始化掉SDRAM,uboot将Nand拷贝到SDRAM(64MB)中(避免在IRAM中放不下)

  3.将pc指针挪到SDRAM中,在SDRAM中运行uboot

--------------------------------------------------------------------------------------------------------------------------------

启动流程  ubuntu搭建TFTP服务器_ubuntu tftp-CSDN博客     

              sudo service  tftpd-hpa  start                                ?

              1.重复开关ARM2440,出现倒计时页面,回车                                                                                  2.printenv  (打印出所有环境变量)     

              3.  setenv serverip '192.168.1.171'                 (设置服务器ip)                                                                                            saveenv                                                                                                        4.ipaddr(setenv ipaddr 192.168.1.200 saveenv)     (板子ip自己的设置或者自动生成)

              5. ping 192.168.1.171                                                                                                                           sudo apt-get install tftp-hpa tftpd-hpa  (安装tftp-hpa和tftpd-hpa配置文件)                                    chmod  0777 uImage -R  (递归所有文件)                      

               6. tftp  0x30008000 uImage                                                                                                               7. bootm 0x30008000  

tftp 简单文件传输协议

                            

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值