FL2440开发版烧录,u-boot移植,和简单C程序运行

来源:互联网 发布:自己朗读软件 编辑:程序博客网 时间:2024/05/17 01:11

烧录文件说明:

bootstrap-s3c2440.bin
bootstrap文件是用汇编写的一段代码,主要用来初始化CPU外部的SDRAM;在烧录时,该程序需要使用j-link下载到0x0(CPU内部SRRAM)地址上去运行,另外此程序不需要烧录到Nandflash上。

u-boot-s3c2440.bin

u-boot就相当于电脑的BIOS程序,该程序用来烧录/启动Linux系统等。在运行完bootstrap后,我们需要使用j-link将它加载到0x33f80000(CPU外部SDRAM)中去运行,当他在存中运行起来后,再使用nand write命令将他烧录到nandflash的0地址上去;

linuxrom-s3c2440.bin

linuxrom是linux系统文件,我们需要在u-boot运行时,使用tftp命令下载到SDRAM的0x30008000地址上,然后再使用nand write命令将其烧录到nandflash的0x100000地址上,记得flash再写之前一定要先使用nand erase命令擦除。

s3c2440_apps.apm

该程序为FL2440上的应用程序,包括系统配置,WiFi使用,3G/GPRS拨号,数据库,web server,MP3/MP4播放器程序等;修改网卡IP地址和MAC地址在:/apps/etc/network/ifcfg-eth0

开发版启动过程如图

j-link加载u-boot命令:

h 停止CPU中正在执行的程序,如果没有停下,可以多按几次h
speed 12000 设置J-link调试速度为12M
loadbin D:\yixieziliao\Linux\bootstrap-s3c2440.bin 0 加载bootstrap程序到CPU内部的4K SRAM中运行
setpc 0 让PC寄出去指向SRAM的起始地址,该地址放的是刚才下载的bootstrap程序
g 开始执行bootstrap程序,该程序用来初始化外部扩展的64M SDRAM,地址空间为0x3000 0000~(0x3000 0000+64M)
此时会看到FL2440开发板上亮了一个LED灯

h 停止bootstrap程序的执行,如果没有停下,可以多按几次h
loadbin D:\yixieziliao\Linux\u-boot-s3c2440.bin 0x33f80000 将u-boot加载到SDRAM的0x33f80000
setpc 0x33f80000 使PC寄存器指向0x33f80000,即u-boot程序的第一条代码
g 开始执行u-boot程序

在SCRT上显示的倒计时结束之前,按下任意键进入u-boot下

u-boot下载烧录命令:

①. 设置u-boot环境变量:

set ethaddr 00:11:22:33:44:55 设置fl2440开发板上的u-boot程序中的MAC地址
set ipaddr 192.168.10.88 设置fl2440开发板上的u-boot程序中的IP地址
set serverip 192.168.10.8 指定tftp下载时使用的tftp服务器的IP地址,即是电脑的有线网卡的ip,可以在网络设置中指定ip
save 保存

这里写图片描述

②. 下载并烧录u-boot程序:

打开TFTP,选择好文件位置
tftp 300008000 u-boot-s3c2440.bin 将u-boot临时下载到SDRAM的30008000地址
nand erase 0 100000  将nandflash的0~1M的分区擦除,该分区是用来存放u-boot程序的;
nand write 30008000 0 ${filesize} 将刚下载到SDRAM 30008000地址上的u-boot写到nandflash的0地址偏移处,大小为下载的U-boot文件大小;

③. 下载并烧录linux系统:

tftp 300008000 linuxrom-s3c2440.bin 将linux系统程序临时下载到SDRAM的30008000地址
nand erase 100000 F00000  将nandflash的1M~16M的分区(总共15M)擦除,该分区是用来存放linux系统的;
nand write 30008000 100000 ${filesize} 将刚下载到SDRAM 30008000地址上的linux系统写到nandflash的1M地址偏移处,大小为下载的linux系统文件大小;

④. 重启进入linux系统:

输入reboot重启或者按下复位reset键重启
这一次在开机时不要中断开发版,在开机完成之后输入账号和密码登录

下载程序:

开发版上的linux系统没有vim编辑器,需要借助其他的设备编辑
由于要用到上传下载,需要有相应的插件
默认有不用安装yum install lrzsz
①.在Linux上
vim hello.c 用sentos编译C程序
gcc hello.c 用gcc编译器编译,但是这个编译的程序无法在开发板上运行
./a.out
/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc hello.c -o hello用arm交叉编译器,编译的程序可以在开发版上运行
sz hello (改SCRT的下载目录,否则会下到默认文件夹)下载C程序到电脑

②.在开发板上
由于u-boot的ip和linux的ip不一样,需要手动设置ip,
ipconfig 查询本机的ip
ifconfig eth0 192.168.XX.XX 把ip设置为上面查询到的ip
tftp -gr hello 192.168.10.8 从电脑端下载程序
chmod 777 hello 赋予权限
./hello 执行程序

这里写图片描述

阅读全文
0 0
原创粉丝点击