TQ2440自我使用手册

1,重定位--把bootloader本身的代码从flash复制到它的链接地址去

想要调用C代码,必须要设置栈(SDRAM的范围,64M的SDRAM的地址空间是30000000-34000000)

ldr sp, = 0x34000000

2,链接脚本的地址是33f80000

刚好跟最高的地址相差512K 

$代码段、只读数据段、数据段、BSS段

关于BSS段,我的理解是,给予的是起始地址和终止地址,并不是拷贝多少0过去。而是在内存中采用Clear BSS段的模式进行。

3,拷贝的内核的地址 30008000  大多数的2440开发板都是确定的。

NANDFLASH中的开始的地址是看MTD的分区表

第二节:

1,人为的把BOOTLOADER的启动分为了第一阶段和第二阶段。

第一阶段主要是位置无关码,而且还没有到SDRAM里面去执行

第二阶段是在SDRAM里面执行,而且主要是C语言代码。

传入内核的参数TAG,约定一个地址和内容,内核就知道参数了。

2022-7-2

目标:想要使用FTP加载内核,然后用NFS加载文件系统

一,NFS的使用

1,在开发初期,开发者可能需要经常更改或更换 rootfs,把 rootfs 用 NFS 的方式挂载, 这样可以大幅减少开发的时程。

说明:bootargs

a、root=/dev/nfs

/dev/nfs并非真的设备,而是一个告诉内核要通过网络取得根文件系统。

d、init=/linuxrc

指定初始化文件

二,看下如果用ftp启动内核和NFS启动文件系统的bootcmd和bootargs的配置

#setenv bootcmd tftp 0x31000000 uImage \; bootm 0x31000000
#saveenv

bootm从内存地址启动

#setenv bootargs noinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192.168.0.119:/home/guqinglei/Writing_code/TQ2440/rootfs,proto=tcp,nfsvers=3 ip=192.168.0.110:192.168.0.119:192.168.0.1:255.255.255.0::eth0:off    
#saveenv

以上基本可以理解了。

二,看下TQ2440的默认的bootcmd和bootargs配置是多少

1,uboot源码查看Default_environment

#define CONFIG_BOOTARGS "noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0"

#define CONFIG_BOOTCOMMAND "boot_zImage"

boot_zImage 我想最终的指令肯定不是这样的,而是类似于

#nand write 0x31000000 400000 500000(内核下载在0x31000000后)
#setenv bootcmd nand read 0x31000000 400000 500000 \; bootm 0x31000000
#saveenv       

如上是从nand读取内核到内存,然后启动的指令。

从头捋一遍,uboot,内核,文件系统等啥的。

1,文件系统是这样创建 的

#cd/opt/EmbedSky
#mkyaffsimage_2 root_2.6.30.4 root_2.6.30.4.bin

最终也是.bin文件

​​​​​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值