linux程序烧写步骤(仅做记录)

SPL
    如果只验证SPL,此时把boot_spl.bin烧写到SPI flash的0x4000地址,上电启动SPL

UBOOT
    u-boot.bin即为烧写可执行文件

Bootloader烧写
    1.编程器烧写:把SPI flash取下来用编程器烧写   此处以flypro为例进行说明
        选择对应的Flash芯片,擦除Flash
        装载烧写文件,选择bootloader.bin
            注意:非XIP启动模式要设置从flash的0x4000地址开始烧写
        烧写完成后把flash装回板子上开机
    2.片上方式烧写
        调整硬件引脚strap[2:0]=000,cpu上电进入到shell界面
        通过输入对应的编号1,选择UART启动SPL
        通过X-modem方式下载PC上的SPL到片上SRAM启动运行
        启动SPL过程中按组合键 ctrl+c 进入到SPL shell
        执行命令ymodem2ddr,从PC通过Y-modem方式下载uboot到ddr运行
        uboot启动shell之后,使用ping命令ping PC 主机
        PC端启动tftp服务,把bootloader.bin放到tftp下载目录
        在uboot shell 下执行updateuboot命令,该命令会下载PC主机上的bootloader.bin文件
            然后烧写spi-flash。正常情况下可以看到tftp下载过程以及spi flash烧写过程,
            等待烧写结束,断电重启
        该流程也可以在开发调试储器,存储设备(SPI flash、Nand flash)未使用起来的时候使用
    
    串口配置
        115200;flow:none;data bits:8;stop bits 1;parity check:none

Bootloader启动流程
    主板上电,运行soc内嵌rom中的ipl程序
    ipl程序将spi-flash中的SPL(start=0x4000,size=16kb)拷贝到片内的SRAM执行
    SPL启动过程中可以输入ctrl+c强制进入SPL shell
    SPL程序将spi-flash中的uboot复制到DDR执行
    uboot启动完成后加载kernel,或者进入uboot shell

KERNEL运行
    使用tftp加载运行kernel
        设置电脑ip,192.168.0.2
        打开tftp工具,先使用ping 192.168.0.2 查看是否通
        烧写了bootloader的交换主板启动 ctrl + c 进入uboot命令行
        输入tftpboot 0x83000000 zImage 将kernel镜像到DDR 0x83000000
        输入go 0x83000000 启动kernel
    从nand flash加载运行kernel
        NAND flash规划4个分区
            0x00000000 - 0x00FFFFFF        16M bootloader 分区
            0x01000000 - 0x04FFFFFF        64M kernel 分区
            0X05000000 - 0x15FFFFFF        256M nandfs ubi 文件系统分区
            0x15000000 - 0x3F7FFFFF        680M sdcard ubi 文件系统分区
        
        设置电脑ip和板卡ip打开tftp工具
        烧写了bootloader的交换主板启动进入uboot命令行
        输入tftpboot 0x83000000 uImage 将kernel镜像下载到DDR 0x83000000
        输入nand erase 0x1000000 0xA00000擦除flash,此处0x1000000是kernel分区地址
            0xA00000是uImage镜像大小,需要根据实际情况输入,此处的0xA00000为10M
        输入nand write 0x83000000 0x1000000 0xA00000 把kernel镜像写到flash中
        断电并重启,正常情况下会自动进入kernel shell
        说明 :正常情况下kernel启动后脚本会自挂载nandfs和sdcard这两个分区。但如果是用户第一次使用,
        这两个分区因为没格式化过,会挂载不成功,这时候需要手动执行以下命令,格式化以及挂载分区。
        进入内核之后,执行以下命令
        ubidetach /dev/ubi_ctrl -d 1
        ubidetach /dev/ubi_ctrl -d 2
        
        ubiformat /dev/mtd1 
        ubiattach -m 1 -d 1 /dev/ubi_ctrl 
        ubimkvol /dev/ubi1 -N nandfs -m
        mount -t ubifs /dev/ubi1_0 /nandfs
        
        ubiformat /dev/mtd2
        ubiattach -m 2 -d 2 /dev/ubi_ctrl
        ubimkvol /dev/ubi2 -N sdcard -m
        mount -t ubifs /dev/ubi2_0 /sdcard
        之后/nandfs和/sdcard下就可以存储文件了

烧写用户文件系统镜像
    网线、串口线正常连接,并打开tftp服务,将ubinandfs.img放在tftp目录下
    烧写了bootloader的交换主板启动 ctrl + c 进入uboot命令行
    输入tftpboot 0x83000000 ubinandfs.img将该镜像文件烧写到DDR 0x83000000地址
    输入ubi part nandfs 2048激活nandfs分区
    输入ubi write 0x83000000 nandfs 0x1800000 将ubinandfs.img写入到nandfs分区,这里的
        0x1800000是镜像文件大小,要根据实际情况调整(此处1800000 为24MB)
    输入ubifsmount ubi0 挂载分区
    输入ubifs可以查看文件列表
    断电并重启


烧写SDK
    板卡上电,进入kernel,设置板卡ip与电脑同网段,以169.254.171.219为例
    ifconfig eth0 169.254.171.200
    输入lsmod查看输出内容
若无显示,则按照以下操作

root@(none):/# cd /usrfs/.conf/ 
root@(none):/usrfs/.conf# ls 
post1hook.sh  readme.txt 
root@(none):/usrfs/.conf# vi post1hook.sh 

dmesg -n 8 

cd / 
ln -s /sdcard/systempart/sf-core.ko sf-core.ko 
chmod 755 sf-core.ko 
insmod sf-core.ko

重启并重新输入lsmod
lsmod
若有提示,则按照以下操作

ifconfig eth0 169.254.171.200
ping 169.254.171.219

cd /sdcard/systempart/
tftp -l sf-core.ko -g 169.254.171.219
tftp -l diag_shell -g 169.254.171.219
上传之后,输入insmod sf-core.ko 即可加载。
加载成功之后,输入lsmod查看
输入chmod 777 diag_shell
./diag_shell
进入diag_shell 即可进行相关命令配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值