玩转开发板--Linux系统移植至开发板fl2440实践过程
2018-03-15 11:27
405 查看
一.开发板介绍
CAMEAR:摄像头。 Keys/RESET:用户可以设置的按键,RESET热重启(不会对内存初始化右下角)/断电冷重启(对内存初始化左上角,又叫电源键)有本质区别。 100Mthemet:网卡接口,并不是网卡芯片,网卡芯片在晶振右边。 USB:有3种,普遍电脑是USBdevice(鼠标等)被读设备,USBHOST是读取其他设备,USBOTG:取决于插入设备可做被读设备或者读取他人设备。电脑USB接口类型typeA,打印机接口类型typeB,手机接口类型typeC,老式手机/MP3/MP4:MicroUSB(miniUSB)。
左上角(RESET)Power:5v电压。 BOOTSELECT:滑动变阻器。 GPIO:拓展的GPIO口,提供额外的控制和监视功能。
Nand flash:固态硬盘。
二.开发板存储系统
分级存储:解决成本低、速度快、存储量大之间的矛盾。 外存:Nandflash掉电不丢失数据。 SDRAM:64*8个电容的集成电路,所以掉电丢数据。需要外部程序初始化,才可以使用。CPU不会从外存拿数据,只在内存中拿数据,如果开发板突然掉电会导致SDRAM存储在内存的数据丢失。 4K SRAM:晶体管组成不需要初始化,直接可以使用,解决内存和硬盘之间死结。
三.FL2440烧入流程
4KRAM上执行的程序目的是初始化内存。 u-boot类似Linux的GRUP+BASH(是操作系统烧入和启动的程序) u-boot与Linux系统是两个不同的程序 300080000:内存地址
四.实践过程所需文件:(使用JLink来控制CPU)
windows环境下所需的软件: 1.J-LINK驱动安装 2.USB转串口驱动安装(CP210芯片) 3.SecureCRT安装(监听端口) 4.Windows下tftp服务器下载(以便实现开发板和本机的连接) 烧入到开发板上的文件: 1.bootstrap-s3c2440.bin(初始化SDRAM) 2.u-boot-s3c2440.bin(提供u-boot环境以便Linux内核和根文件系统的烧录) 3.linuxrom-s3c2440.bin(Linux系统) 4.rootfs-ubifs.bin(根文件系统)五.实践过程中的硬件准备
1.windows与开发板之间网络通信(tftp):网线。 2.windows与开发板之间通过JLink控制开发板CPU(4K):J-TAG——JLink——USB接口 3.windows与开发板之间通过串口进行输入和输出(SecureCRT对端口进行监听):串口。六.SecureCRT对端口监听操作
在监听之前需要查看串口与PC端所连接在哪个端口(例如COM2)注:Baud rate必须是115200(根据硬件信息的不同,选取的也不同)并且RTS/CRS不勾选(RTS/CRS是给接收端发送和接收的信息,RTS给接收方发信息并且等待接收方回复信息,由于其中的FL2440是不回复信息,故RTS永远无法继续下一个步骤。)
Data bits:8个位数,需要与通信设备一致。
Parity:校验方式(奇/偶),需要与通信设备一致。
奇校验(Odd Parity):就是让原有数据序列中(包括你要加上的一位)1的个数为奇数;
偶校验(Even Parity):就是让原有数据序列中(包括你要加上的一位)1的个数为偶数; Stop bits:停止字节;
七.J-link操作(在Windows下运行)
在windows环境下打开JLinkCommander确保与开发板连接正常后: 1.加载bootstrap程序到SRAM中并运行J-Link>h //停止计算机此刻动作J-Link>speed 12000J-Link>loadbin D:\linux-windows\特殊共享linux-windows\bootstrap-s3c2440.bin 0 //SRAM地址J-Link>setpc 0 //PC寄存器会自加,CPU按顺序执行,CPU所要执行的命令是从PC寄存器中获得/********此处之前,都在4KRAM上运行的,作用只是启动内存SDRAM********/J-Link>g //运行这个程序 2.加载u-boot程序到SDRAM中并运行J-Link>hJ-Link>loadbin D:\linux-windows\特殊共享linux-windows\u-boot-s3c2440.bin 0x33f80000J-Link>setpc 0x33f80000J-Link>g/*********此处之前在SDRAM上运行*********/注: 1.尽量少热拔插,会损坏JLink 2.此时不要拔掉JLink 3.对于其中的30008000等的含义请参考http://blog.csdn.net/PipiAvenger/article/details/79652610
查看SecureCRT是否打印端口信息:打印出来即代表成功监听,否则重调SecureCRT。
注:此处使用的是凌云实验室的u-boot-s3c2440.bin 在操作时遇到的问题: 在操作J-Link时,加载bootstrap程序时成功但是打印的信息没有显示在CecureCRT上,切换端口,显示到CecureCRT成功。(USB3.0->USB2.0)
八.u-boot下烧录:
设置u-boot环境变量u-boot>nand scrub 格式化整个Nandflashu-boot>set ethaddr 00:11:22:33:44:55 设置网卡MAC地址u-boot>set ipaddr 192.168.99. 4 设置IP地址u-boot>set serverip 192.168.99.3 设置TFTP服务器IP地址u-boot>save 保存环境变量设置电脑网端以太网
注: 1.并且打开tftp传输工具(CRT与tftp共享文件位置是D:\linux-windows\特殊共享linux-windows) 2.开发板默认网卡是关闭的,所以只有开发板ping的了计算机,计算机ping不同 3.在所有操作都完成后,需要将有线网络更改为自动获取,否则,将导致其他有线网络可能否法识别。
烧录u-boot程序u-boot>tftp 30008000 u-boot-s3c2440.bin 下载u-boot程序到内存(30008000)中u-boot>nand erase 0 100000 擦除u-boot存放到相应的分区u-boot>nand write 30008000 0 40000 从内存中写入u-boot到nandflash相应分区
烧录Linux系统u-boot>tftp 30008000 linuxrom-s3c2440.bin 下载Linux内核相应文件到内存中u-boot>nand erase 100000 擦除Linux内核及其后面所有分区(一擦除就是一个块,一写就是一页)u-boot>nand write 30008000 100000 ${filesize} 写入Linux内核相应的nandflash分区
烧录根文件系统u-boot>tftp 30800000 rootfs-ubifs.bin 下载根文件系统相应文件到内存中u-boot>nand erase 1000000 4000000 擦除根文件系统相应分区u-boot>nand write 30800000 1000000 ${filesize} 写入根文件系统到相应nandflash分区
/*****再此之前,在u-boot环境下(CecureCRT)*****/在操作时遇到的问题: 1.虚拟机的IP地址以及服务器的IP地址设置出现重叠 2.忘记关闭防火墙,导致tftp下载失败 3.如果Linux系统没有烧录进去,则u-boot会弹出搜索不到Linux系统的信息
4.如果根文件没有烧录到指定的Nand flash之中去的话,则系统会搜索不到根文件系统并且弹出内核搜索不到根文件系统
九.开发板启动流程
相关文章推荐
- qt移植到OK6410开发板linux系统过程
- iMX6开发板移植Linux系统之LVDS显示屏驱动程序分析之LVDS参数的匹配过程分析
- FL2440移植linux-3.0全过程(3)制作initramfs最小文件系统
- 将FL2440开发板修改为单独的linux系统
- linux 系统移植 (一,uboot启动过程)
- Arm linux 内核移植及系统初始化过程分析
- 移植linux2.6.29内核+yaffs2文件系统过程
- 《深度实践嵌入式Linux系统移植》
- linux-2.6.32在mini2440开发板上移植(19)之yaffs2文件系统移植
- 系统移植(linux2.6.30.4->TQ2440)过程及其现象
- linux-3.4.2移植到FL2440上(三)--制作根文件系统
- 2440开发板linux系统移植3G拨号上网收发短信(一)
- FL2440 Linux-3.0内核最小系统移植
- 深度实践嵌入式linux系统移植 光盘下载地址
- 2440开发板linux系统移植3G拨号上网收发短(二)
- 开发板上Linux系统(烧录)启动过程
- FL2440 Linux kernel + yaffs2根文件移植过程(二)
- FL2440移植linux-3.0全过程(2) make menuconfig
- linux2.6.12系统wpa_supplicant移植过程
- FL2440 Linux-3.0内核最小系统移植