九层塔是什么菜| 金光是什么生肖| 口腔溃疡要吃什么药| 酸菜炒什么好吃| 言字旁与什么有关| 长得标致是什么意思| 胆囊壁胆固醇结晶是什么意思| 熙熙攘攘什么意思| 酒糟鼻子是什么原因引起的| 腿麻木是什么原因引起的| 失代偿期的肝是属于什么程度| 蜻蜓是什么动物| 伽利略是什么学家| 总手是什么意思| 低烧是什么原因引起的| 七月八日是什么星座| 锡纸什么牌子的好| 感冒了吃什么食物最好| 肾蕨是什么植物| 什么情况下喝补液盐| 查甲状腺应该挂什么科| 墨绿色是什么颜色| 40年属什么| 心急如焚是什么意思| 荧光色是什么颜色| 肠胃炎能吃什么食物| BORDEAUX是什么红酒| 莆田系是什么意思啊| 什么泉水| 开放式耳机是什么意思| 做梦捡到钱了什么预兆| 六月二十四是什么星座| 来月经喝酒有什么影响| 为什么血压高| 心功能三级是什么意思| 福建人喜欢吃什么口味| 脾虚喝什么泡水比较好| 女汉子什么意思| 拔完火罐要注意什么| 胀气吃什么食物好| 断层是什么意思| 沈阳有什么特产| 人在什么情况下会发烧| 英语一和英语二有什么区别| 什么样的泥土| 疱疹一般长在什么部位| 眼底出血是什么原因引起的| 左舌根疼痛是什么情况| 平菇不能和什么一起吃| 6月8日什么星座| 马齿苋长什么样| 胃难受想吐是什么原因| 肝火旺是什么原因引起的| 枭神夺食会发生什么| 精液什么颜色正常| pa是什么材料| 前胸后背疼是什么原因| 亭台楼阁是什么意思| 眼睛有眼屎是什么原因引起的| 吃什么东西涨奶最快| 无性恋什么意思| 杨贵妃是什么生肖| 鼻子出血挂什么科| 虎年是什么年| 什么叫周围神经病| 什么是阻生牙| co是什么元素| 学英语先从什么学起| 为什么会孕酮低| 付之一炬是什么意思| 女生的逼长什么样| 苍龙七宿的秘密是什么| 男神是什么意思| 蝉是什么生肖| 狗吐黄水吃什么药| 什么兔子最好养| 嘴唇上起泡是什么原因| 12月26是什么星座| 老年人吃什么水果对身体好| 福晋是什么意思| 什么情况下做冠脉ct| 什么是横纹肌溶解| doki是什么意思| 什么安全套好用| 阑尾炎能吃什么| 一库是什么意思| ipf是什么病| 云裳是什么意思| 维生素a是什么| apple什么意思| bml什么意思| 眼睛散光和近视有什么区别| 银屑病是什么症状| 乂是什么意思| 冰藤席是什么材质| 玉米什么季节成熟| 假卵是什么样子的| 莀字五行属什么| 诸事顺遂是什么意思| 肝硬化是什么病| 为什么老做梦| 吃西瓜有什么好处| 山东日照有什么好玩的| 爱做梦是什么原因| 孕妇感冒可以吃什么感冒药| 市人大副主任什么级别| 什么叫平仓| 梦见下雪是什么意思| 00后属什么生肖| 头孢是治什么的| 汉语什么意思| 小精灵是什么意思| 鸡精和鸡粉有什么区别| 口幼读什么| 军士长是什么级别| 天津有什么好吃的| 乳腺结节应该挂什么科| 口臭是什么原因| 巴利属于什么档次的| 处事不惊是什么意思| 布洛芬缓释胶囊是什么药| 铁观音是属于什么茶| 疏忽是什么意思| 感冒喝什么水好得快| 情有独钟是什么意思| 办银行卡需要什么证件| 身体不出汗是什么原因| 什么东东是什么意思| 劳碌命是什么意思| 什么是焦距| 阳痿早泄挂什么科| 免签是什么意思| 老鼠和什么属相最配对| 心律不齐什么症状| 什么是墨菲定律| 喝酒吐血是什么原因| jojo什么意思| 益生菌的食物是什么| 头发出汗多是什么原因| 什么东西可以解酒| 抱窝是什么意思| 排卵期一般在什么时候| 讣告什么意思| 89年的蛇是什么命| 没有痔疮大便出血是什么原因| geya是什么牌子的手表| 关照是什么意思| 肾结石为什么会疼| nba季后赛什么时候开始| 胃糜烂吃什么药效果好| 后入什么意思| 皮肤容易晒黑是什么原因| 精神可嘉是什么意思| 去脚气用什么药最好| 东风是什么意思| 血红蛋白偏低是什么原因| 日文是什么字| 入户口需要什么资料| 产检请假属于什么假| 电轴左偏什么意思| 蜜蜂蛰了用什么药| 哥字五行属什么| 蛇吃什么东西| 右肺上叶结节什么意思| 什么人不能吃黄精| 燕子喜欢吃什么| 不速之客的速是什么意思| 过期酸奶有什么用| 吃护肝片有什么副作用| 女单读什么| mk是什么意思| 霉菌感染什么症状| 癸未日五行属什么| 强烈的什么| 特工是什么意思| 香蕉可以做什么美食| 梦见胡萝卜是什么意思| 秋葵对痛风有什么好处| 林深时见鹿什么意思| 黄色分泌物是什么原因| 与虎谋皮是什么意思| 弹力棉是什么面料| 睫毛炎有什么症状| 匝道什么意思| 肺热吃什么中成药| 考研都考什么科目| 看见双彩虹有什么征兆| 套路是什么意思| bni是什么意思| 屁股生疮是什么原因| 什么是肝癌| 腮腺炎是什么症状| 洋地黄中毒首选什么药| 头昏吃什么药| 胃酸吃什么能马上缓解| 正在值机是什么意思| aimer是什么意思| 子痫是什么意思| 5月20日是什么日子| 白蚂蚁长什么样子图片| 下雨天适合吃什么| 怀孕一个月有什么反应| 下午1点到3点是什么时辰| 八月二十是什么星座| 吃什么能让子宫瘤变小| 忌行丧是什么意思| fda是什么意思| 梦见骆驼是什么意思| 同仁什么意思| 被蝎子蛰了有什么好处| 2016年属猴是什么命| 为什么会得疣| 为什么人要喝水| 站久了脚后跟疼是什么原因| 谭震林是什么军衔| 来龙去脉是什么意思| 物心念什么| 血肿不治疗有什么后果| 霸王硬上弓什么意思| 低血糖吃什么食物| 包饺子用什么肉| 马岱字什么| 直肠炎是什么症状| 总恶心是什么原因| 喉咙干疼吃什么药| 断袖是什么意思| 颈动脉有斑块吃什么药| 为什么会宫颈糜烂| 凝胶是什么东西| 旖旎是什么意思| 心脏在什么位置图片| 什么时候排卵| 女团ace是什么意思| 什么病会晕倒| 盐酸利多卡因是什么药| 绎什么意思| 假冒警察什么罪怎么判| 高回声是什么意思| 突破性出血是什么意思| 解酒吃什么水果| 1992属什么生肖| 钓鲈鱼用什么饵最好| hbaic是什么意思| 女生下体长什么样子| 卡布奇诺是什么意思| onemore是什么牌子| 红蜘蛛是什么虫| 胆汁为什么会反流到胃里面| 蔑视是什么意思| slogan是什么意思啊| hrd什么意思| 一鸣惊人指什么动物| 三伏天什么时候开始| 小叶增生和乳腺增生有什么区别| 烧仙草粉是什么做的| 阳痿吃什么药效果好| 1月8日是什么星座| 女生的胸长什么样子| 3.8什么星座| 花笺是什么意思| 毛尖茶属于什么茶| 耳浴是什么意思| 吃什么能治脂肪肝| rads是什么意思| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 嵌入式开发 ? MCU ? linux2.6.14内核+yaffs系统移植

共1条 1/1 1 跳转至

linux2.6.14内核+yaffs系统移植

专家
2025-08-04 12:06:37     打赏
linux2.6.14内核+yaffs系统移植 百度   华为投资控股有限公司工会持股员工代表会  二O一八年三月二十三日  主送:公司全体员工

 

rar----------------------编译内核-----------------
修改 Makefile
主要是以下两项:
1 ) ARCH = arm
2) CROSS_COMPILE = /arm-linux-
选中 load an Alternate Configuration File ,然后键入配置文件的路径。
在我刚编译内核的时候选择的是 linux-2.6.14/arch/arm/configs/smdk2410_defconfig 这个配置文件。
-------------------让内核支持 yaffs 文件系统----------
1. MTD 分区的支持
进入Device Drivers->Memory Technology Devices(MTD)目录,配置界面如下:
Memory Technology Device (MTD) support
[ ]   Debugging                                                          │ │
[ ]   MTD concatenating support                                          │ │
[*]   MTD partitioning support                                           │ │
[ ]     RedBoot partition table parsing                                  │ │
[ ]     Command line partition table parsing                             │ │
[ ]     ARM Firmware Suite partition parsing                             │ │
---   User Modules And Translation Layers                                │ │
[*]   Direct char device access to MTD devices                           │ │
[*]   Caching block device access to MTD devices                         │ │
[ ]   FTL (Flash Translation Layer) support                              │ │
[ ]   NFTL (NAND Flash Translation Layer) support                        │ │
[ ]   INFTL (Inverse NAND Flash Translation Layer) support               │ │
RAM/ROM/Flash chip drivers  --->                                   │ │
Mapping drivers for chip access  --->                              │ │
Self-contained MTD device drivers  --->                            │ │
NAND Flash Device Drivers  --->                                    │ │

进入NAND Flash Device Drivers目录,配置界面如下:
[*] NAND Device Support                                              │ │
[ ]   Verify NAND page writes                                        │ │
[*] NAND Flash support for S3C2410/S3C2440 SoC                       │ │
[*]   S3C2410 NAND driver debug                                      │ │
[ ]   S3C2410 NAND Hardware ECC                                      │ │
[ ] DiskOnChip 2000, Millennium and Millennium Plus (NAND reimplement│ │
[ ] Support for NAND Flash Simulator                                 │ │

其它不用多设,甚至 Direct char device access to MTD devices 选项和Mapping drivers for chip access  ---> 目录下的所有选项都可以去掉(经已试验过) 。因为那些是为 nor flash 服务的,一般文件系统都会放在 nand flash 上吧,不过也不排除例外。那你就干脆让它们留着好了,因为编译出来后实在多不了多少,我把它们去掉的原因只是为了试验 ^_^
-----------------------添加驱动---------------------
vi arch/arm/mach-s3c2410/devs.c
添加如下内容:
#include <linux/mtd/partitions.h>
#include <linux/mtd/nand.h>
#include <asm/arch/nand.h>
...
/* NAND Controller */
1.建立Nand Flash分区表
/* 一个Nand Flash总共64MB, 按如下大小进行分区 */
static struct mtd_partition partition_info[] ={
[0] = {
.name = "bootloader",
.offset = 0x00000000,
.size = 0x00030000,
},
[1] = {
.name = "kernel",
.offset = 0x00030000,
.size = 0x00200000,
},
[2] = {
.name = "root",
.offset = 0x00230000,
.size = 0x03dcc000,
}
};
注:分区表信息要参考你自己的内核和文件系统的大小,排布来设置,vivi中的分区信息要和mtd分区信息一致,分多少个区由你自己决定,
2. 加入Nand Flash分区
struct s3c2410_nand_set nandset ={
nr_partitions: 3, /* the number of partitions */
partitions: partition_info, /* partition table */
};
nr_partitions: 指明partition_info中定义的分区数目
partitions: 分区信息表

3. 建立Nand Flash芯片支持
struct s3c2410_platform_nand superlpplatform={
tacls:0,
twrph0:30,
twrph1:0,
sets: &nandset,
nr_sets: 1,
};
4. 加入Nand Flash芯片支持到Nand Flash驱动
另外,还要修改此文件中的s3c_device_nand结构体变量,添加对dev成员的赋值
struct platform_device s3c_device_nand = {
.name = "s3c2410-nand",
/* Device name */
.id = -1,
/* Device ID */
.num_resources = ARRAY_SIZE(s3c_nand_resource),
.resource = s3c_nand_resource, /* Nand Flash Controller Registers */

/* Add the Nand Flash device */
 .dev = {
   .platform_data = &superlpplatform
 }
};
/*----------------------禁止Flash ECC校验(yaffs系统好像不用)---------
vi drivers/mtd/nand/s3c2410.c
找到s3c2410_nand_init_chip()函数,在该函数体最后加上一条语句:
chip>
eccmode = NAND_ECC_NONE;
保存,退出。*/
----------------------------指定启动时初始化--------------
kernel启动时依据我们对分区的设置进行初始配置修改arch/arm/mach-s3c2410/mach-smdk2410.
static struct platform_device *smdk2410_devices[] __initdata = {
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_i2c,
&s3c_device_iis,
/* 添加如下语句即可 */
&s3c_device_nand,
};
--------------------内核加上对yaffs2支持-----------------
下载yaffs2.tar.gz源码包,解压源码,并进入目录执行
#./patch-ker.sh /linux-2.6.14.1/
File systems->Miscellaneous filesystems 目录,配置信息如下:
[*] YAFFS2 file system support                                               │ │
---   512 byte / page devices                                                │ │
[]     Lets Yaffs do its own ECC                                            │ │
[]       Use the same ecc byte order as Steven Hills nand_ecc.c            │ │
---   2048 byte (or larger) / page devices                                   │ │
[]     Autoselect yaffs2 format                                             │ │
[]     Disable lazy loading                                                 │ │
[]   Turn off wide tnodes                                                   │ │
[]   Turn off debug chunk erase check                                       │ │
[]   Cache short names in RAM

在这里要说明一下以上的配置,在论坛发贴的时候我因为对它不怎么了解,几乎是全部选上的。后来经过自己的理解和摸索,发现:
1、 ---   2048 byte (or larger) / page devices   目录以下全部不用选,因为这是 yaffs2 文件系统的,如果你是用 yaffs 文件系统的话就不必选择这个了 ( 我到现在还没去研究 yaffs2 比 yaffs 文件系统优越多少,反正 yaffs 文件系统用得好好的 )  
2、 Lets Yaffs do its own ECC 这一项,网上很多人说 yaffs 文件系统和 mtd 驱程的更新速度问题,导致加上 ecc 检测后,会挂不了 yaffs 文件系统,所以要把 mtd 驱程的 ecc 检测去掉,让 yaffs 自己做 ecc 检测(就是要选上这一项)。不过去掉 mtd 驱程 ecc 检测的后果就是换来烦人的 Reading data from NAND FLASH without ECC is not recommended 的提示,后来发现原来把 mtd 驱程的 ecc 检测加回去,也可以很好的支持 yaffs 文件系统,所以就把这一项去掉了,终于可以不用再看那烦人的提示了 ^_^
-----------------------devfs-----------------------
拷贝下面几项到2.6.14的fs/Kconfig中去:
找到menu "Pseudo filesystems"
config DEVFS_FS
bool "/dev file system support (OBSOLETE)"
depends on EXPERIMENTAL
help

config DEVFS_MOUNT
bool "Automatically mount at boot"
depends on DEVFS_FS
help

config DEVFS_DEBUG
bool "Debug devfs"
depends on DEVFS_FS
help

重新make menuconfig 在File systems->Pseudo filesystems目录里面可以后到devfs的配置选项如下:
[*] /proc file system support                                          │ │
[*] /dev file system support (OBSOLETE)                                │ │
[*]   Automatically mount at boot                                      │ │
[*]   Debug devfs                                                      │ │
[*] Virtual memory file system support (former shm fs)                 │ │
[ ] Relayfs file system support
顺便说一下,在内核配置的时候经常会看到 debug 选项吧?这是为了调度内核用的,你不需要的话可以去掉。有时还会让你选择 quiet 和 nosy ,选择 nosy 的话输出的调试信息当然会比 quiet 要多了。

 

保存。

make zImage




关键词: linux2.6.14     内核     +yaffs     系统         

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
葡萄糖输液有什么作用 4月7号是什么星座 虚劳病是什么意思 姜不能和什么一起吃 阿斯巴甜是什么东西
冲正什么意思 树膏皮是什么皮 什么对眼睛好 拉肚子吃什么水果好 画饼充饥是什么意思
四月28日是什么星座 老年人吃什么 yg是什么意思 六月初六是什么节 地铁什么时候停运
色即是空是什么意思 荷花什么季节开放 贫血要吃什么 耳蜗是什么东西 松茸是什么
1月生日是什么星座hcv9jop8ns1r.cn 乙肝通过什么途径传染hcv8jop5ns6r.cn 查甲功是什么意思hcv9jop7ns2r.cn 龙须菜是什么hcv8jop7ns6r.cn 盗汗是什么意思hcv9jop2ns2r.cn
赵匡胤为什么不传位给儿子hcv8jop9ns8r.cn 狗摇尾巴是什么意思hcv8jop2ns9r.cn 女生下面是什么样的hcv9jop2ns9r.cn 5.22是什么星座hcv7jop9ns9r.cn 感性的人是什么意思hcv9jop4ns6r.cn
白细胞低说明什么hcv9jop3ns2r.cn 一饿就胃疼什么原因weuuu.com 腰椎间盘突出和膨出有什么区别chuanglingweilai.com 什么叫牙冠dayuxmw.com 竹者念什么hcv9jop0ns9r.cn
猫能看到什么颜色hcv9jop3ns8r.cn 秒男是什么意思hcv8jop2ns7r.cn 给男人补身体煲什么汤hcv7jop9ns5r.cn 五年生存率是什么意思hcv7jop9ns0r.cn 便潜血阳性什么意思hcv9jop2ns5r.cn
百度