添加mtdparts引起的问题
今天在给uboot添加分区,大家都知道添加完之后直接在终端里面mtd会报错:
SMDK2440 # mtd
mtdparts variable not set, see 'help mtdparts'
no partitions defined defaults:
mtdids : nand0=jz2440-
mtdparts: mtdparts=jz2440-:512k(u-boot),128k(params),2m(kernel),-(rootfs)
需要手动执行mtdparts default之后在执行mtd命令就好了,于是大家几乎都在arch/arm/lib下的board.c中添加:
run_command("mtdparts default",);
for (;;) {
main_loop();
}
然而我在这个地方加了之后怎么都不成功,分析代码执行mtdparts default其实最终就是调用mtdparts_init()函数,于是我换成在这个地方直接执行mtdparts_init()函数,发现还是不凑效,于是一直在分析do_mtdparts命令,发现也没什么需要添加的宏。
于是想到有可能run_command("mtdparts default",0);这个代码根本就没执行,于是在这个函数前面加了些打印,发现打印也没有,这个函数果然没有执行。
于是搜索board_init_r函数,发现在common/board_r.c里面也有个board_init_r函数,赶紧做了个测试,发现果然是这样的,board_r.c这个文件里面也有一个init_sequence_r[]数组,其实初始化的时候是在执行这个数组,并非arch/arm/lib/board.c这个文件里的init_sequence[],最终执行的是run_main_loop函数,我在这个函数里面添加run_command("mtdparts default",0);就可以了。
当然在直接在main_loop函数里面添加如下代码也可以,走哪个分支,最终都会去执行main_loop函数的:
#ifdef CONFIG_CMD_MTDPARTS
if (!getenv("mtdparts"))
{
puts("mtdparts env not found\r\n");
run_command("mtdparts default", );
}
#endif
添加mtdparts引起的问题的更多相关文章
- u-boot中添加mtdparts支持以及Linux的分区设置
简介 作者:彭东林 邮箱:pengdonglin137@163.com u-boot版本:u-boot-2015.04 Linux版本:Linux-3.14 硬件平台:tq2440, 内存:64M ...
- 移植u-boot-1.1.6之mtdparts分区
和u-boot高版本不同,mtdparts命令没有cmd_mtdparts这么一个单独的文件来实现. 不过,搜索uboot可以在cmd_jffs2.c里面看到如下代码: U_BOOT_CMD( mtd ...
- 嵌入式 uboot以及kernel添加看门狗临时记录(个人记录未整理乱)
Uboot_Kernerl_Add_Watch_Dog: U-Boot 2010.06 (Nov 01 2013 - 15:28:44) DRAM: 128 MiBCheck spi flash c ...
- 向openwrt 源码添加ap143支持
借鉴地址:http://www.pppei.net/blog/post/536 1.向文件 \target\linux\ar71xx\generic\profiles\atheros.mk 中添加ap ...
- Hi3531添加16GByte(128Gbit) NAND Flash支持
0.板子上已有Nor Flash了,添加的Nand Flash型号为MT29F128G08CJABAWP,进系统挂接NAND作为一个分区 1.修改uboot u-boot-2010.06/driver ...
- OpenWrt启动过程分析+添加自启动脚本【转】
一.OpenWrt启动过程分析 转自: http://www.eehello.com/?post=107 总结一下OpenWrt的启动流程:1.CFE->2.linux->3./etc/p ...
- uboot 传递的参数 mtdparts
启动uboot后,在重新烧写程序之前,查看传递给内核的参数时(命令为: printenv),看到如下内容: bootargs=console=ttyS0,115200 mtdparts=spi0.0: ...
- .Net Core MVC 网站开发(Ninesky) 2.4、添加栏目与异步方法
在2.3中完成依赖注入后,这次主要实现栏目的添加功能.按照前面思路栏目有三种类型,常规栏目即可以添加子栏目也可以选择是否添加内容,内容又可以分文章或其他类型,所以还要添加一个模块功能.这次主要实现栏目 ...
- C#给PDF文档添加文本和图片页眉
页眉常用于显示文档的附加信息,我们可以在页眉中插入文本或者图形,例如,页码.日期.公司徽标.文档标题.文件名或作者名等等.那么我们如何以编程的方式添加页眉呢?今天,这篇文章向大家分享如何使用了免费组件 ...
随机推荐
- P1903 [国家集训队]数颜色 / 维护队列
思路 带修莫队的板子 带修莫队只需要多维护一个时间的指针即可,记录一下每个询问在第几次修改之后,再回退或者前进几个修改操作 排序的时候如果a.l和b.l在一个块里,就看r,如果a.r和b.r在一个块里 ...
- ssh hibernate修改数据库
org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in rea ...
- Mac配置Hadoop最详细过程
Mac配置Hadoop最详细过程 原文链接: http://www.cnblogs.com/blog5277/p/8565575.html 原文作者: 博客园-曲高终和寡 https://www.cn ...
- C#三层架构
C#三层架构 三层架构分为:表现层(UI(User Interface)).业务逻辑层(BLL(Business Logic Layer)).数据访问层(DAL(Data Access Layer)) ...
- maven打包时出现 Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4:install (default-install) on project……
maven在打包时只会默认打jar包,而那些xml等配置文件默认不打包进去的,这样的话在mybatis的配置使用中就有问题了. 要自己配置后手动打包才能将xml文件也纳入打包的范围,配置后打包发现出现 ...
- [Java] int 转换为BigDecimal
new BigDecimal(int i); BigDecimal.parseBigDecimal(String.valueOf(int i));
- Idea破解注册码
Idea破解注册码 ThisCrackLicenseId-{ "licenseId":"ThisCrackLicenseId", "licenseeN ...
- SWUST OJ(957)
逆置单链表 #include <stdio.h> #include <stdlib.h> typedef struct LNode { char data; struct LN ...
- string部分方法
1.string.lastIndexOf() lastIndexOf 是从string末尾查找,但是返回值仍是首部的位置值. 2.string.replace() 放一个正则匹配会全部替换. 3.st ...
- django中form组件
Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否 ...