玩转开发板--Linux系统移植至开发板fl2440实践过程
一.开发板介绍
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 12000
J-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>h
J-Link>loadbin D:\linux-windows\特殊共享linux-windows\u-boot-s3c2440.bin 0x33f80000
J-Link>setpc 0x33f80000
J-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 格式化整个Nandflash
u-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实践过程相关推荐
- 基于全志A33开发板linux系统移植学习记录(Boot0)
基于全志A33开发板linux系统移植学习记录 第一章 Boot0基于ARMGCC的编译与修改 文章目录 基于全志A33开发板linux系统移植学习记录 前言 一.全志A33简介以及上电引导流程 二. ...
- Linux系统移植:官板 uboot 修改(下)
文章目录 Linux系统移植:官板 uboot 修改(下) 一.LCD 驱动修改 二.网口驱动修改 2.1 PHY 地址修改 2.2 删除 uboot 中 74LV595 的驱动代码 2.3 添加 I ...
- 迅为IMX6ULL教程更新至2060+页,裸机开发,Linux系统移植,驱动开发,构建文明系统,QT开发,系统编程
教程更新至2060+页 彻底让零基础的同学真正学会 更完善的教程更全面的讲解更高效的学习 第一部分 总领及学习指引:主要探讨的学习方法,我们将尽量用比较简洁的方式,让大家明白嵌入式系统知识体系,以及它 ...
- iTOP-4418开发板Linux系统移植modbus
首先确保开发板和虚拟机 Ubuntu 可以 ping 通,如下图所示,作者虚拟机的 IP 为"192.168.2.200" 通过开发板可以 ping 通 Ubuntu. 其次,注意 ...
- iTOP-4418开发板Linux系统移植modbus-arm的测试程序
进入目录/home/minilinux/libmodbus-3.1.4/tests/,查看测试程序 random-testserver.c,如下图所示 已经编译出来了,但是还是需要修改一下源码中的几个 ...
- linux系统移植与开发
文章目录 前言 1 .第一次拿到开发板需要做什么 1.1 . 开发板启动方式,接线方法 1.2 . 开发板驱动安装 2.U-BOOT的修改和完善 2.1.简单的源码修改 2.1.1.串口输出欢迎图案和 ...
- NUC980开发板Linux系统EC20模块 移植 串口 PPP拨号
NUC980开发板Linux系统EC20模块 移植 串口 PPP拨号 1. EC20模块连接 2. Linux内核配置 3. 交叉编译PPP 4. 拨号脚本 5. 进行拨号 1. EC20模块连接 在 ...
- Linux系统移植:原厂 Kernel 移植到开发板
文章目录 Linux系统移植:原厂 Kernel 移植到开发板 一.获取原厂内核并编译 二.内核启动测试 三.添加自己板子文件 3.1 板子配置文件 3.2 板子设备树 3.3 编译 四.重要配置修改 ...
- 嵌入式Linux(5):驱动开发网络调试驱动设备的Linux系统移植
驱动开发之网络调试驱动设备的Linux系统移植 1.Uboot移植到开发板 uboot移植 2.开发板网络通讯 nfs命令 tftp命令 3.Linux移植到开发板 4.BusyBox 构建根文件系统 ...
最新文章
- 《数据科学家养成手册》第十一章------算法学1(穷举,分治,回溯,贪心,迭代)
- angular 打印 lodop 引入css样式
- RabbitMQ脑裂问题解决方案调查
- python ui框架_PyQt5GUI项目程序框架
- 源码分析-HashSet、LinkedHashSet
- 整体C#与Sql培训内容及结构
- 常量与格式化输出练习
- iOS 之持久化存储 plist、NSUserDefaults、NSKeyedArchiver、数据库
- Java集合框架:LinkedList
- 同一个页面多个按钮,根据按钮名字执行相应功能
- 面试常见问题之实现bind函数
- 【CodeForces - 1066A~E】水题,模拟(有技巧),思维,题意难懂的模拟,二进制问题(有技巧)
- memset() 初始化类对象
- Data - 大数据生态圈
- CSS半透明边框效果
- 单片机小车关于PWM控速
- gopro7怎么回看视频_gopro7推荐帧数设置 gopro7视频格式设置
- FFmpeg 加水印 加马赛克
- 360极速浏览器打不开国内网站的一种解决方法
- python安装目录插件