您的位置:首页 > 运维架构 > Linux

玩转开发板--Linux系统移植至开发板fl2440实践过程

2018-03-15 11:27 405 查看

一.开发板介绍




    CPU:S3C2440(SAMSUNG)、ARM920T、400MHz    Pone/mic:耳机和话筒    JTAG:可以通过外部插入直接控制CPU,因此在初始化内存时,起到重要作用。    ADC:采样A模拟,D数字,C转换。    EEPROM:电可擦可编程只读存储器(可存放MAC地址)。   LCD:电阻式屏幕。
    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之中去的话,则系统会搜索不到根文件系统并且弹出内核搜索不到根文件系统

九.开发板启动流程



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux fl2440