[国嵌攻略][149][Yaffs2文件系统应用]
嵌入式系统自启动
MTD技术通过把Nand FLash划分成bootloader分区,Linux kernel分区和file system分区来达到自启动的效果。
配置和编译内核
1.配置Linux内核支持MTD分区
make meunconfig ARCH=arm
device drivers-><*>memory techology device(MTD) support->[*]MTD partitioning support->exit->save
2.找到内核分区地址的数据结构
通过找到内核分区结构struct mtd_partition来找到内核分区地址。MINI2440的分区地址在kernel/arch/arm/plat-s3c24xx/common_Embedsky.c中。
grep “mtd_partition”-rn /arch/arm
3.设置内核分区地址
4.编译Linux内核
make uImage ARCH=arm CROSS_COMPILE=arm-linux-
制作yaffs2文件系统
1.制作根文件系统
2.格式化文件系统
mkyaffs2image ./rootfs/ rootfs.img
配置bootloader启动参数
1.找到uboot中bootcmd环境变量,设置启动内核
打开bootloader/include/config/EmbedSky.h,设置CONFIG_BOOTCOMMAND:
nand read 31000000 200000 300000;bootm 31000000
2.设置uboot中bootarg环境变量,设置文件系统
设置CONFIG_BOOTARGS :
noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0
3.编译uboot
make CROSS_COMPILE=arm-linux-
烧写编译好的引导、内核和文件系统到Nand FLash
1.通过usb下载
usbsalve 1 30000000
usbsalve表示通过usb下载,1表示等待连接,30000000表示下载到内存的地址
2.格式化nand flash
nand erase 0 40000
nand erase 200000 300000
nand erase 500000 不指定长度,表示后面全部格式化
3.写入nand flash
nand write 30000000 0 40000
nand write 30000000 200000 300000
nand write.yaffs 30000000 500000 2C29980 写入文件长度可以通过查看文件大小得到
[国嵌攻略][149][Yaffs2文件系统应用]的更多相关文章
- [国嵌攻略][173][BOA嵌入式服务器移植]
1.解压boa嵌入式web服务 tar zxvf boa-0.94.13.tar.gz 2.进入src目录生成配置文件 ./configure 3.修改生成的Makefile CC=arm-linux ...
- [国嵌攻略][163][linux-usb软件系统架构]
软件系统架构 1.主机端软件架构 USB设备驱动->USB核心->USB主控制器驱动->USB主控制器 2.设备端软件架构 Gadget驱动->Gadget API->U ...
- [国嵌攻略][148][MTD系统架构]
MTD设备概述 Flash在嵌入式系统中是必不可少的,它是bootloader.Linux内核和文件系统的最佳载体.在Linux内核中引入了MTD子系统为NOR Flash和Nand FLash设备提 ...
- [国嵌攻略][142][LCD驱动程序架构]
LCD裸机驱动回顾 1.LCD初始化 1.1.控制器初始化 1.2.端口初始化 1.3.指明了帧缓冲 2.LCD图形显示 2.1.将图形数据写入帧缓冲 Linux帧缓冲体验 把图片转换成开发板屏对应的 ...
- [国嵌攻略][100][嵌入式Linux内核制作]
Linux内核制作步骤 1.清除原有配置 make distclean 2.配置内核 选择一个已有的配置文件简化配置 make menuconfig ARCH=arm 3.编译内核 ARCH指明处理器 ...
- [国嵌攻略][099][Linux内核配置与编译]
为什么要配置内核 基于硬件和软件的需求选出需要的功能,去掉不要的功能. 内核配置的方法 make config:基于文本交互的配置. make menuconfig:基于图形菜单的配置. make m ...
- [国嵌攻略][098][Linux内核简介]
Linux系统架构 1.用户空间:应用程序.C函数库 2.内核空间:系统调用接口.内核.体系结构相关代码 Linux系统利用处理器不同的工作模式,使用其中的两个级别分别来运行Linux内核与应用程序, ...
- [国嵌攻略][097][U-Boot新手入门]
嵌入式软件层次 1.Bootloader 2.Linux内核 3.文件系统 编译U-Boot 1.解压uboot tar zxvf uboot.tar.gz 2.清除uboot make distcl ...
- [国嵌攻略][045-046][一跃进入C大门]
[一跃进入C大门] 跳转方式 1.相对跳转:b或bl指令,通过计算两个地址之间的差值来给pc赋值相对跳转 2.绝对跳转:ldr指令,通过给pc直接赋值,完成绝对跳转 代码编写 1.在汇编代码中直接使用 ...
随机推荐
- sar 命令详解
sar (System Activity Reporter)命令是LInux下系统运行状态统计工具, 它将指定的操作系统状态计数器显示到标准输出设备. sar 工具将对系统当前的状态进行取样,然后通过 ...
- split 命令详解
作用:将大文件切割成小文件. 参数:-l 按照行数分隔文件 -b 按照大小分隔文件 -d 使用数字做后缀 实例:分隔文件默认1000行 split mylog ; wc ...
- 基于Jmeter的PostgreSQL空间性能测试笔记
这是很早之前做过的一个测试,最近在整理postgresql测试相关的资料,所以也把它拿出来了与大家分享. 首先解释一下所谓的PostgreSQL空间性能,主要是基于postgis的空间数据导入性能,详 ...
- UWP Windows历史上最漂亮的UWP框架出炉!!!
UWP Windows历史上最漂亮的UWP框架出炉!!! 本框架基于微软的开源项目WTS开发,并在其基础上增加了FDS(流畅设计元素,高光.亚克力等).多语言系统.沉浸式体验(扩展内容到标题栏) 同时 ...
- CGO 类型(CGO Types) 一
CGO Types C作为一种混合编程语言已经很久了,无论那些广泛使用的包是用何种语言实现的,都导出了和C兼容的API.Go程序调用C程序,可以借助两种工具实现,一种是cgo,另一种是SWIG工具.C ...
- jQuery Ajax post多个值传参
http://blog.csdn.net/wang8559422/article/details/42394839 data:'id='+data+'&val='+val 加&符 ...
- 如何把Excel中的单元格等对象保存成图片
对于Excel中的很多对象,比如单元格(Cell),图形(shape),图表(chart)等等,有时需要将它们保存成一张图片.就像截图一样. 最近做一个Excel相关的项目,项目中遇到一个很变态的需求 ...
- ASP.NET Core学习之一 入门简介
一.入门简介 在学习之前,要先了解ASP.NET Core是什么?为什么?很多人学习新技术功利心很重,恨不得立马就学会了. 其实,那样做很不好,马马虎虎,联系过程中又花费非常多的时间去解决所遇到的“问 ...
- robotframework学习笔记(七)------筛选执行用例
第一种:手动勾选用例 可勾选用户,然后点击运行,这样就只运行到勾选的用例.如果不勾选的点击运行就会运行所有用例. 第二种 菜单中去筛选 可在菜单中去筛选勾用例,然后点击运行 Select All Te ...
- python重试装饰器的简单实现
简单实现了一个在函数执行出现异常时自动重试的装饰器,支持控制最多重试次数,每次重试间隔,每次重试间隔时间递增. 最新的代码可以访问从github上获取 https://github.com/black ...