U-boot1.1.6移植到TQ2440开发板(下)

发布者:鑫森淼焱最新更新时间:2015-11-02 来源: eefocus关键字:U-boot1  6  移植  TQ2440开发板 手机看文章 扫描二维码
随时随地手机看文章
    这两天在移植u-boot,花了两天完全是因为卡在nandflash里了,关于nandflash下次再写吧,这次记录一下刚刚遇到的一个问题吧。。。呵呵。

    u-boot在引导linux启动,需要传递环境变量等配置

    设置一些宏定义,在include/configs文件下的配置文件里添加


#define CONFIG_SETUP_MEMORY_TAGS 1
#define CONFIG_CMDLINE_TAG 1
#define CONFIG_INITRD_TAG 1

#defineCONFIG_BOOTARGS "noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0"
#defineCONFIG_BOOTCOMMAND "nand read 0x32000000 0x200000 0x300000;bootm 0x32000000"

  这里说明一下最后那个宏定义,在说之前首先声明一下,在nand分区为

    0~0x40000为u-boot区,0x200000~0x500000为kernel区,剩下的为文件系统了

  根据上面的分区我们可以很容易知道那个宏定义的意思了,首先用nand read命令将内核从nandflash地址0x200000开始复制,大小为0x300000,复制到sdram起始地址为0x32000000。执行完后,再执行命令bootm,启动

 

  还有很重要一个要设置math_type和内核里设置的一样,否则无法启动

  其在u-boot:include/asm-arm/mach_types.h里,在linux:arch/arm/tools的mach_types里

 

  如果u-boot引导内核时出现错误Bad Magic Number时,那么说明你的linux缺少64字节的头信息。可以用u-boot/tools下的mkimage给它加入头信息,具体操作如下:

将zImage.bin文件拷到tools/目录下,输入命令:
#mkimage -n 'linux-2.6.30' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d zImage.bin zImage.img

就可以生成带有头信息的zImage.img了,将其烧写就可以正常启动了
这里解释一下参数的意义:
-A==>setarchitectureto'arch'
-O==>setoperatingsystemto'os'
-T==>setimage typeto'type'
-C==>setcompressiontype'comp'
-a==>setload addressto'addr' (hex)
-e==>setentrypointto'ep' (hex)
-n==>setimage nameto'name'
-d==>useimage datafrom'datafile'
-x==>setXIP(executein place)

上面的方法是可行,但是却很麻烦吖,不可能每次编译好了内核,还要去添加一次头信息吧?所以,从linux 2.6版本开始,就可以使用make uImage命令,直接生成带有头信息的uImage了,请到arch/arm/boot下查看呵呵。

如果使用make uImage提示有错误,那就自己百度吧。。。自学,百度是必需的!

好了,就到这里,现在的话,u-boot+linux+root都OK了,可能接下来是QT吧。。。嘿嘿,要让LCD大放异彩,必需的。

最后补充下,具体将这些烧写到NANDFLASH里的那里呢?这和你的分区有关,前面已经说了分区了,所以,请将你的U-BOOT烧写到0地址,linux烧写到0x200000,root就到0x5000000吧

关键字:U-boot1  6  移植  TQ2440开发板 引用地址:U-boot1.1.6移植到TQ2440开发板(下)

上一篇:U-boot1.1.6移植到TQ2440开发板(上)
下一篇:关于u-boot移植时的NAND FLASH问题

推荐阅读最新更新时间:2024-03-16 14:38

stm32 基于TIM1定时器的PWM输出
void PWM_TIM1(uint16_t arr,uint16_t psc) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); //定时器TIM1时钟使能 TIM_DeInit(TIM1); //设置在下一个更新事件装入活动的自动重装载寄存器周期的值 TIM_TimeBaseStructure.TIM_Period =arr; //设置用来作为TIMx时钟频率出书的预分频值 TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置时钟分割 TIM_TimeBaseStru
[单片机]
印度发生史上最大数据外泄 1亿用户遭殃
据外媒报道,印度运营商Reliance Jio近期遭遇用户数据外泄事件,超过1亿用户的个人资料被泄露在了网站Magicapk.com上,此次事件也成了印度运营商史上最大的用户数据外泄事件。Reliance Jio称它们已经开始着手对该事件进行调查。下面就随手机便携小编一起来了解一下相关内容吧。 Reliance Jio由印度首富穆克什·安姆巴尼(Mukesh Ambani)创建,去年9月正式运营。通过提供免费的4G服务,Reliance Jio迅速吸引了1亿多用户。 印度发生史上最大数据外泄 1亿用户遭殃 在注册Reliance Jio服务时用户都会使用一个特殊的12位识别码,该系统归属于印度的Adhaar身份识别项目。
[手机便携]
断电1分钟损失十个亿,三星伤不起
韩联社(Yonhap)12月31日消息称,本周二韩国三星电子的一家工厂因突发断电事故而部分停产两到三天…… 信息透露,该工厂是三星电子位于首尔西南约60公里的华城工厂,主要生产DRAM和NAND闪存芯片。此次断电的原因是附近变电站的输电电缆发生爆炸,从而切断了工厂周围的电力。停电持续了大约1分钟。 次日,针对此突发事件,三星电子公司在一份声明中公开确认了此事,称:“在周二下午发生大约一分钟的断电事故后,其华城芯片工厂的部分芯片生产已经暂停。目前正在检查生产线以备重新启动,并正在评估造成的损失。” 三星方面还强调,相信很快,两到三天后就会重新开始生产,暂时的停工不会造成太严重的损失。 需要指出,这不是三星存储工
[半导体设计/制造]
断电<font color='red'>1</font>分钟损失十个亿,三星伤不起
高通骁龙660测试机曝光:双摄/6G内存/2K屏
还记得此前我们曝光的骁龙660跑分吗?现在网上又出现了一组骁龙660测试机的谍照,顺带着还曝光了部分配置。按照此前的说法,骁龙660将会取代骁龙652/653,采用三星14nm工艺制造,集成八个高通自主的Kyro CPU核心,四大四小组合,主频分别为2.2GHz、1.9GHz,同时集成Adreno 512 GPU,支持双通道LPDDR4X内存、UFS 2.1存储、X10 LTE基带。 看起来骁龙660的规格是相当强悍,只是制造工艺不如骁龙835,而且GPU、基带档次略低一些,CPU部分甚至并没有太大的差距。 从最新曝光的谍照来看,这部测试机搭载的是后置双摄像头,屏幕分辨率高达2K,同时内置了6GB内存,运行Android 7.1.
[手机便携]
苹果为何要同时发布iPhone 6和iWatch
   BI中文站 9月1日报道 据说苹果将在9月9日召开的产品发布会上同时宣布iPhone 6和iWatch。 这种做法对于苹果来说有些罕见,因为它通常喜欢在每次产品发布会上只集中发布一款重磅产品。我们之前预计苹果会在9月份发布iPhone 6,然后在1个月之后再发布iWatch。 前苹果广告业务高管肯西格尔(Ken Segall)解释了苹果为什么决定在一次发布会上同时发布这两款重要的产品。他假设自己仍在苹果工作,与苹果营销高管讨论是否同时发布这两款产品。他最后得出了以下的结论: 将iPhone和iWatch放在一次产品发布会上同时发布有两个重要的原因。恰逢外界对苹果提出质疑的重要时刻,这将成为苹果公司历史上规模最大的一次
[手机便携]
又出大招:蓝牙新增寻向功能,定位精度从米提升至厘米级
停车场里找不到自己的车?这样的经历似乎大多数人都有过,尤其对于方向感没那么强的人,更是一场噩梦。也许,蓝牙联盟1月28日新推的蓝牙5.1标准能够帮你解决这样的问题,新标准将允许测定蓝牙设备的方向,从而对设备进行厘米级定位。 蓝牙寻向缘起 近年来,蓝牙位置服务市场机会增长迅速。市场调研公司 ABI Research 的报告显示,预计在2022年,基于蓝牙位置服务的产品年出货量将超过4亿。越来越多的蓝牙Beacon和传感器在世界各地的智能楼宇和智能场所中得到部署。蓝牙地标信息解决方案(PoI)正在增强在博物馆和零售商店的访客体验。数百万人依赖蓝牙产品寻找追踪丢失的密钥和其他个人物品。蓝牙室内定位系统(IPS)正在帮助数百万旅客
[网络通信]
又出大招:蓝牙新增寻向功能,定位精度从米提升至厘米级
module方式调试驱动(Micro2440 + linux 2.6.39)
调试驱动时,为了避免每修改一次内核配置或驱动都要重新编译一次内核镜像,可以将驱动配置成模块(module)的方式进行调试,可在LINUX启动时动态地加载驱动模式到内核中,减少了编译时间,也省去了重启LINUX的时间,大大加快调试进度。 以下以Micro2440 + linux 2.6.39的RTC驱动为例子,进行动态编译。 a) 将RTC编译成module,并打开DEBUG输出 # make menuconfig Device Drivers --- * Real Time Clock --- RTC debug suppor
[单片机]
module方式调试驱动(Micro2440 + linux 2.6.39)
韩国Hynix开发出1GB手机芯片 明年开始量产
8月13日消息,据国外媒体报道,韩国海力士(Hynix)半导体公司周日宣布,公司已开发出了全球最快和最小的1GB手机芯片,Hynix打算在明年早些时候将新芯片投入量产。 全球第二大电脑内存芯片制造商称,新芯片每秒钟可处理1.6GB字节数据。 Hynix公司宣称,公司将在2008年早些时候开始量产芯片,这种新型手机芯片可用于“超小型电子设备和内存产品”。通过对下一代产品的积极投资,Hynix希望在十年内成为全球顶级芯片制造商。
[焦点新闻]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved