第11课:烧写Linux系统到开发板
- 格式:pdf
- 大小:3.75 MB
- 文档页数:9
开发板烧录教程开发板型号:FL2440烧录⼯具: J-Link串⼝⼯具:340调试终端:secureCRT下载⼯具:tftpd32烧录前:串⼝连接开发板,在secureCRT上快速链接:1)协议:Serial ;2)在设备管理器选择端⼝进⾏选择3)波特率:115200,数据位:8 ,奇偶校验: none ,停⽌位:04)不选择流控烧录要使⽤的⽂件:烧录⽂件说明:--------------------bootstrap-s3c2440.binbootstrap⽂件是郭⼯⽤汇编写的⼀段代码,主要⽤来初始化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-eth0J-link commander的连接,在开发板上插上J-link ,如果没有J-link驱动请先安装,在开始菜单-程序-SEGGER-J-link commander 双击打开连接正确后接着进⾏J-link命令操作:J-link 加载u-boot命令h 停⽌CPU中正在执⾏的程序,如果没有停下,可以多按⼏次hspeed 12000 设置J-link调试速度为12Mloadbin E:\Baiduyun\bootstrap-s3c2440.bin 0 加载bootstrap程序到CPU内部的4K SRAM中运⾏setpc 0 让PC寄出去指向SRAM的起始地址,该地址放的是刚才下载的bootstrap程序g 开始执⾏bootstrap程序,该程序⽤来初始化外部扩展的64M SDRAM,地址空间为0x3000 0000~(0x3000 0000+64M)h 停⽌bootstrap程序的执⾏,如果没有停下,可以多按⼏次hloadbin E:\Baiduyun\u-boot-s3c2440.bin 0x33f80000 将u-boot加载到SDRAM的0x33f80000setpc 0x33f80000 使PC寄存器指向0x33f80000,即u-boot程序的第⼀条代码g 开始执⾏u-boot程序这样u-boot就下载到开发板的内存上并可以运⾏了。
烧写linux镜像到emmc中的方法
要烧写 Linux 镜像到 emmc 中,需要遵循以下步骤:
1. 准备好 emmc 芯片,并将其连接到计算机上。
2. 下载并安装相应的烧写工具,例如 imgburn 或 fujitsu_eraser。
3. 打开 imgburn 或 fujitsu_eraser 工具,并选择要烧写的镜像文件。
4. 选择 emmc 芯片,并选择烧写选项,例如选择所有可用的存储空间进行烧写。
5. 等待烧写过程完成,这可能需要一段时间。
烧写过程中需要注意以下几个点:
1. 在烧写之前,请确保 emmc 芯片已经正确连接到计算机,并且计算机已经启动。
2. 确保镜像文件是正确的,并且已经正确格式化。
3. 如果镜像文件包含多个分区,请确保在 emmc 中正确地格式化这些分区。
4. 在烧写之前,请确保已经备份了重要的数据,以防烧写过程中出现错误。
烧写过程可能会对 emmc 芯片造成损害,因此请谨慎操作。
如果不确定如何烧写镜像到 emmc 中,建议先学习相关知识或寻求专业人士的帮助。
烧写ARM开发板系统教程-----uboot、内核以及⽂件系统⼀、sd启动将u-boot镜像写⼊SD卡,将SD卡通过读卡器接上电脑(或直接插⼊笔记本卡槽),通过"cat /proc/partitions"找出SD卡对应的设备,我的设备节点是/dev/sdb.(内存卡的节点)。
当有多个交叉编译器是,不⽅便设置环境变量时,可以在编译命令中指定交叉编译器,具体如下:在源码中操作以下步骤:make distcleanmake ARCH=arm CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi- mrpropermake ARCH=arm CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi- tiny210_configmake ARCH=arm CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi- all spl编译出tiny210-uboot.bin,注意交叉编译⼯具路径执⾏下⾯的命令$sudo dd iflag=dsync oflag=dsync if=tiny210-uboot.bin of=/dev/sdb seek=1把内存卡插⼊开发板,使⽤串⼝⼯具设置环境变量:setenv gatewayip 192.168.1.1(电脑⽹关)setenv ipaddr 192.168.1.102(开发板ip,不要与虚拟机和电脑ip冲突)setenv netmask 255.255.255.0setenv serverip 192.168.1.10(虚拟机ip)saveenv⼆、nand启动烧写Uboot:通过SD卡启动的u-boot for tiny210 将u-boot镜像写⼊nandflash在虚拟机下重启tftp sudo service tftpd-hpa restart开发板终端下执⾏下⾯的命令:[FriendlyLEG-TINY210]# tftp 21000000 tiny210-uboot.bin[FriendlyLEG-TINY210]# nand erase.chip[FriendlyLEG-TINY210]# nand write 21000000 0 3c1f4 (写⼊长度)内核的烧写位置是0x600000开始的区域,⽂件系统烧写位置为0xe00000开始的区域。
类别描述A 想深入了解嵌入式开发或是觉得学校课程讲得不深入、不贴近实际的专科、本科、研究生B 想从单片机开发转入嵌入式开发的工程师C 不希望局限在上层,想深入了解整个系统的工程师D 想成为系统工程师、软件框架设计师的程序员E想从硬件开发转为软件开发的工程师操作系统Linux基本操作-会使用若干条基本命令即可开发语言基本的C语言知识,汇编不要求(视频里有介绍汇编,就几条而已)硬件知识能看得懂原理图最好,不会也没关系(视频里有专门一课)课程名称:韦东山Linux视频第1期、第2期课程针对人群学习课程的能力要求课程掌握后的能力值概述(技能目标)裸板操作及bootloader深入理解ARM体系统架构,可以写出具备中断功能的裸板程序,对程序现场的保存、恢复有所了解,这些原理适用于任何架构CPU,适用于内核及应用程序掌握常用的硬件部件的操作,比如GPIO,UART,I2C,LCD,触摸屏;可以写出这些硬件部件的裸板程序掌握写汇编代码的能力,可以分析任意裸板包括u-boot、内核里的相关汇编代码能自己写出2期视频里讲到的各种驱动,它们已经涉及了工作中的绝大部分驱动掌握系统级别的应用调试方法:使用工具,修改内核自制工作掌握驱动调试方法:打印,自制打印,分析oops信息,栈回溯,理解内核原理然后修改内核,自制调试工具掌握驱动程序中各种操作:休眠-唤醒, 同步互斥, 异步通知, 定时器,上下半部等学习Linux驱动的套路:分配-设置-注册,掌握驱动的分析方法调试手段掌握裸板调试方法:点灯、打印、用JTAG工具进行源码级别的调试,查看反汇编熟悉裸板程序的结构,给你一个bootloader就能分析它的初始化部分、内存使用情况、链接地址、重定位、程序的相对跳转/绝对跳转等掌握bootloader启动内核的原理,能完全自己写出一个bootloader内核移植及启动过程可以配置、移植一个全新的内核了解内核的启动过程,解决启动中碰到的问题了解内核的基本原理:进程调度、系统调用的过程、内存管理等与程序开发密切相关的知识驱动程序开发掌握三大类驱动程序的框架:字符设备驱动、块设备驱动、网卡驱动分析内核启动的第1个进程的运行过程,进而构造根文件系统课程创新价值讲师及简介授课形式及服务配套更新频率项目三:电源管理后续课程:第3期项目开发实战(跟第2期是分开销售的)Linux系统工程师:再加上些应用开发的经验,很容易成为系统架构师<嵌入式Linux应用开发完全手册>可以说是最好的嵌入式Linux入门书将在6月1号发布,录完1节发布1节;未录制完提前购买价格180元;录制完后购买价格280已经有4个超级QQ群:173968594,49256475,177535949,176512363学完后具备相当于1-2年Linux底层开发的实际工作经验主讲:韦东山2003年毕业于中国科学技术大学,电子专业、软件专业双学位。
嵌入式烧写程序的步骤摘要:一、概述嵌入式烧写程序的基本概念二、烧写前的准备工作1.硬件准备2.软件准备三、烧写步骤1.下载uboot2.编写并编译应用程序3.烧写应用程序4.调试运行四、常见问题及解决方法1.烧写失败2.程序无法运行3.硬件损坏五、总结与展望正文:一、概述嵌入式烧写程序的基本概念嵌入式系统是指以微控制器为核心,通过硬件和软件的相互配合,实现特定功能的系统。
嵌入式烧写程序是将编写好的程序代码烧写到嵌入式设备中,使其具备特定功能的过程。
烧写程序的关键在于选择合适的烧写工具、编写正确的程序代码以及确保烧写过程中的稳定性。
二、烧写前的准备工作1.硬件准备:确保具备以下硬件设备:- 嵌入式开发板- 编程器(如JTAG、JLink等)- 串口或网络通信设备(用于下载和调试程序)2.软件准备:安装必要的软件工具,如:- 交叉编译工具链(如GCC、Keil等)- 烧写工具(如JTAG驱动、JLink等)- 文件管理工具(如Windows资源管理器、Linux终端等)三、烧写步骤1.下载uboot:在嵌入式开发中,uboot是首个运行的程序,用于引导后续程序的运行。
可以从互联网上下载适用于目标开发板的uboot镜像文件。
2.编写并编译应用程序:根据嵌入式系统的需求,编写程序代码。
需要注意的是,编写的代码应符合目标平台的架构和指令集。
编写完成后,使用交叉编译工具链进行编译,生成目标平台可执行的binary 文件。
3.烧写应用程序:- 使用烧写工具(如JTAG、JLink等)连接到开发板。
- 将编译生成的binary 文件通过串口或网络通信设备传输到开发板。
- 使用烧写工具将binary 文件烧写到目标存储器(如FLASH)中。
4.调试运行:将开发板与电脑连接,通过串口或网络通信设备观察程序运行情况。
如有问题,可进行调试修改代码,直至程序正常运行。
四、常见问题及解决方法1.烧写失败:可能是烧写工具或开发板的问题。
烧写linux镜像到emmc中的方法烧写Linux镜像到eMMC中是在嵌入式系统开发中常见的操作。
eMMC(嵌入式多媒体卡)是一种用于嵌入式系统的闪存存储设备,它具有高速、可靠和稳定的特性。
以下是一种常见的方法来烧写Linux镜像到eMMC中的步骤:1. 准备工作:在开始烧写之前,需要准备一些工具和材料,包括:- 一台电脑或开发主机- eMMC烧写工具(如SD卡读卡器、USB转接器等)- eMMC嵌入式模块或嵌入式开发板- Linux镜像文件2. 连接eMMC模块:将eMMC模块连接到电脑或开发主机上,可以使用SD卡读卡器或USB转接器等工具。
确保连接稳定可靠,以避免数据丢失或损坏。
3. 格式化eMMC:在烧写之前,需要格式化eMMC,以确保它是一个干净的存储介质。
可以使用磁盘管理工具(如GParted)来进行格式化操作。
选择eMMC设备,删除所有分区并创建一个新的分区。
4. 使用烧写工具烧写Linux镜像:选择一个适合的烧写工具来将Linux镜像写入eMMC。
常见的工具包括dd命令、balenaEtcher、ddrescue等。
这些工具通常提供图形界面和命令行接口,可以根据自己的喜好选择。
- 如果使用dd命令,可以通过以下命令将Linux镜像写入eMMC:```sudo dd if=/path/to/linux_image.img of=/dev/sdX bs=4M status=progress```其中,`if`参数指定Linux镜像文件的路径,`of`参数指定eMMC设备的路径(例如,/dev/sdX),`bs`参数指定块大小,`status=progress`参数可以显示烧写进度。
- 如果使用balenaEtcher等烧写工具,只需选择Linux镜像文件和eMMC设备,然后点击烧写按钮即可。
5. 等待烧写完成:烧写过程可能需要一些时间,具体取决于Linux镜像的大小和烧写工具的性能。
在烧写过程中,不要中断或移动eMMC设备,以免导致数据损坏。
《SDL系列游戏在ARM上移植的实现》院系专业班级提交时间:2016年11月12日SDL系列游戏在ARM上移植的实现湖北省武汉,430070摘要:在现在,年轻人喜欢通过玩游戏来放松自己,娱乐自己。
许多人会选择到电玩厅游戏厅放松自己。
因此,我研究并使用FriendlyARM实现一个简易的SDL系列《仙剑奇侠传一》的移植,使其能够通过键盘运行游戏。
完成这个游戏移植同时需要嵌入式硬件知识和软件知识。
硬件方面主要是烧写SD卡,将linux镜像文件安装到嵌入式设备上,修改分辨率;软件方面主要是移植游戏和SDL 游戏库,设置开机自启动。
并且,因为移植原理简单方便,可以以此为模板移植到一些大型设备上,比如电玩厅的游戏机,以此获得商业利益。
关键词:SDL系列游戏;ARM移植The Realization of SDL Series Game Porting on ARM Abstract: In the present, young people like to play through the game to relax and entertain themselves. Many people choose to relax in the arcade game room. Therefore, I study and use FriendlyARM to achieve a simple SDL series "Paladin" transplant, so that it can run the game through the keyboard. Completing this game migration requires both embedded hardware knowledge and software knowledge. Hardware is the main programming SD card, the linux image file installed on the embedded device, modify the resolution; software is mainly transplant games and SDL game library, set the boot from the start. And, because the transplant principle is simple and convenient, you can use this as a template to transplant to some large equipment, such as video game console, in order to obtain commercial interests.Keywords:SDL series of games; ARM transplantation1 实验的主要工作1. 了解linux 操作系统,熟悉各种基础指令代码;了解SDL 游戏移植基本原理,熟悉移植过程;了解ARM 硬件软件操作。
信息工程学院嵌入式系统实验报告实验一2410经典Linux系统烧写班级:计算机XXX班学号:XXXXXXXX姓名:XXXXXX指导老师:李长悦一、实验目的windows xp下进行Linux系统烧写即恢复到出厂状态时,需要的文件在光盘中的Linux\img 目录和flashvivi目录下提供。
烧写2410-CL linux操作系统包vivi,kernel,root三个步骤,除此我们还要烧写应用程序,这四个文件分别为:vivi ----linux操作系统启动的bootloader;zImage ----linux操作系统内核;root.cramfs ----根文件系统;yaffs.tar.bz2 ----应用程序压缩包。
二、实验内容1.烧写vivi1.1把并口线插到pc机的并口,并把并口的另一端与实验箱上端的UP-LINK相连,打开2410-CL电源(12V)。
1.2把整个GIVEIO目录(在光盘的img/flashvivi目录下)拷贝到c:/windows下,并把该目录下的giveio.sys文件拷贝到c:/windows/system32/drivers下。
1.3在我的电脑里打开控制面板,选添加硬件,点击“下一步”,如下图所示:选择“是,我已经连接了此硬件”然后点击“下一步”,如下图所示:选中“添加新的硬件设备”然后点击“下一步”,如下图所示:选中“安装我手动从列表选择的硬件”后点击“下一步”,如下图所示:选择“显示所有设备”然后点击“下一步”,如下图所示:选择“从磁盘安装”然后点击“下一步”,如下图所示:选择“浏览”,指定驱动为C:\WINDOWS\GIVEIO\giveio.inf文件,如下图所示:选择giveio.inf文件,然后点击“打开”,如下图所示:然后选择“确定”,如下图所示:点击“下一步”至“完成”即安装好驱动。
如下图所示:1.4在d盘新建一目录bootloader,把sjf2410-s.exe(在flashvivi目录下)和要烧写的vivi,linux 操作系统内核,根文件系统和应用程序压缩包拷贝到该目录下。
《跟我一起学习嵌入式Linux系统开发》第11课:烧写Linux系统到开发板
(一)烧写过程概括
1、默认NandFlash没有程序的前提下,需要如下的完成烧写过程。
2、制作一张含有Uboot代码的SD卡启动盘,让CPU上电后,可以读到uboot启动代码,完成后面的烧写过程。
3、将拨码开关调整到SD卡启动方式,插入制作好引导程度的SD卡。
上点。
4、SD卡里的Uboot代码已经加载到内存中运行起来了。
之后利用uboot中的USB OTG接口代码,将PC上的uboot.bin\zImage\system.img文件,加载到内存中。
5、然后再将内存中的这些内容,写入到NandFlash中。
6、操作完之后,NandFlash中就有了我们的代码了,这时将拨码开关调整到NandFlash启动,即烧写完毕。
(二)制作引导系统的SD卡
注:制作SD卡引导作用是在NandFlash里没有启动代码时,使CPU通过SD卡能够引导启动Uboot。
1、首先选择一张Kingston或Sandisk的正品SD卡,2G,4G均可。
2、在Ubuntu虚拟机环境下解压Uboot源码
注:解压命令tar zxvf uboot_smdk210.tar.gz
3、解压后进行编译(具体请参考编译Uboot)
4、进入uboot的sd_fusing目录。
5、把SD卡插入读卡器中。
然后把读卡器插入PC的USB口
此时虚拟机的右下角会出现一个Removable Disk的图标,单击该图标,在出现的菜单中选择Connect
此时/dev/目录下会出现关于SD卡的设备节点。
我这里是/dev/sdb
用户可以自己插拔SD卡来确认这个节点)
、执行./sd_fusing.sh/dev/sdb
至此Uboot已经烧入到SD卡中。
(三)通过USB OTG烧写镜像
、设置拨码开关,使其从SD卡引导,并将制作好启动的SD卡插入开发板中。
启动方式拨码设置图例
SD卡启动ON:23 OFF:14
、将串口线和USB OTG线与开发板连接起来、在PC机端打开DNW软件,并进行配置
注:此处的COM Port接口为PC机串口的端口号。
本例使用PC机为COM1
4、给开发板上电
5、Uboot启动,按空格键进入Uboot
6、输入命令nand erase,擦除整片NandFlash
7、输入命令dnw c0008000,将uboot.bin通过usb下载到开发板中内存0xc0008000位置处。
8、选择dnw菜单的USB port->Transmit加载uboot.bin
9、输入命令nand write c00080000100000将uboot.bin写入到NandFlash中。
10、输入命令dnw c0008000
11、选择dnw菜单的USB port->Transmit加载zImage
12、输入命令nand write c0008000100000300000,将zImage写入NandFlash中
13、输入命令dnw c0008000
14、选择dnw菜单的USB port->Transmit加载system.img
15、输入命令nand write.yaffs c0008000600000c1bae00,将system.img写入NandFlash中注意:写入的c1bae00这个值,是根据usb下载文件的大小决定的(上图红色位置)。
启动方式拨码设置图例
NandFlash启动ON:4 OFF:123
17、系统启动。