u-boot移植初步尝试-tiny4412
获取u-boot源代码
在u-boot官方网站下载uboot源码。ftp://ftp.denx.de/pub/u-boot/
因为是第一次移植uboot,所以这里选的版本是 u-boot-2013.01
解压文件到 /home/tiny4412下。
cd /home/tiny4412/
tar xvf u-boot-2013.01
根据 Linux嵌入式驱动学习之路③u-boot配置分析 中可知在执行mkconfig时会从boards.cfg中提取相应的信息。
所以在boards.cfg中添加相应的信息。
tiny4412(目标板型号) arm(CPU架构) armv7(CPU型号) tiny4412(开发板名称) samsung(生产厂家) exynos(片上系统)
打开makefile,指定交叉工具链为 arm-linux-
找一个最类似的board配置修改。这里我们参考的是 origen
cd board/samsung/
cp origen tiny4412 -rf
cd tiny4412/
修改makefile信息 将origen该为tiny4412
将origen.c该为tiny4412.c
将$(obj)/include/configs/origen.h 复制为tiny4412.H
将tiny441.h中原来的#define CONFIG_SYS_PROMPT "ORIGEN #" 改成:
将原来的#define CONFIG_IDENT_STRING "for ORIGEN" 改成
编译u-boot
make distclean
make tiny4412_config
make
编译完成后会生成可执行的u-boot.bin文件。
将友善之臂中提供的sd_fuse文件夹复制到顶层目录中。
编译用于生成bl2的工具
cd sd_fuse; make
将一张大于4G的SDHC卡插入电脑。假设已被识别为/dev/sdb
cd sd_fuse/tiny4412/
sudo ./sd_fusing.sh /dev/sdb
若有以下提示,则制作成功。
U-boot image is fused successfully.
Eject SD card and insert it again.
将sd卡放入开发板,从SD卡启动,无任何现象。
确认第一条指令运行到了。(点灯)
在arch/arm/cpu/armv7/start.s的reset 中添加下面几句话
/* led (GPM4_0~3) on */ /*点亮LED灯*/
ldr r0, =0x110002E0
ldr r1, =0x00001111
str r1, [r0]
ldr r1, =0x0e
str r1, [r0, #0x04]
重新制作sd卡,启动,led被点亮。
然后,我把led灯的指令放到lowlevel_init中,发现灯点不亮。
反汇编后,查看了一下我觉得没有问题。一直不知道是为什么。后来在整理相对跳转和绝对跳转笔记时,突然想起来会不会是lowlevel_init这个代码在代码段的位置中太靠后了,因为上电之后内存并没有初始化。所以我修改了链接脚本器。
在arm/arm/cpu/armv7目录中的u-boot.lds的CPUDIR/start.o (.text*)后加上下面一段话后,led灯被点亮。
CPUDIR/start.o (.text*)
board/samsung/tiny4412/libtiny4412.o (.text)
arch/arm/cpu/armv7/exynos/libexynos.o (.text)
sdf
u-boot移植初步尝试-tiny4412的更多相关文章
- Python爬虫学习:二、爬虫的初步尝试
我使用的编辑器是IDLE,版本为Python2.7.11,Windows平台. 本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:二.爬虫的初步尝试 1.尝试抓取指定网页 ...
- 用R进行微博分析的初步尝试
新浪微博如火如荼,基于微博的各种应用也层出不穷. 有一种共识似乎是:微博数据蕴含着丰富的信息,加以适当的挖掘.可以实现众多商业应用.恰好社会网络分析也是我之前有所了解并持续学习的一个领域,因此我做了微 ...
- spring boot初步尝试
第一次知道spring boot这个项目是为在学习spring的时候,在官网上看到的,那个时候不知道这个项目是干嘛的,也就没再继续关注了 这些天实习没什么事做,一直没用spring框架了,就想着去官网 ...
- 标题:u-boot 移植步骤详解
1 U-Boot简介U-Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目.从FADSROM.8xxROM.PPCBOOT逐步发展演化而来.其源码目录.编译形式与 ...
- OSX 上初步尝试 asp.net 5
去年微软最令开源狗界振奋的消息就是 ASP.NET 的开放与开源这一消息了. 根据微软的介绍,与我之前的一些总结,可以看到 ASP.NET 以及 .NET 平台会有下面几个变化: 代码使用 Apach ...
- -boot移植(十一)---代码修改---支持nandflash
一.移植前的修改 1.1 include/configs/jz2440修改 原来的定义: 可以看出,要先定义CONFIG_CMD_NAND才能使能NANDFlash. 这个在我们文件中的82行有定义, ...
- spring boot docker 初尝试
Docker服务中进程间通信通过/var/run/docker.sock实现,默认服务不提供监听端口,因此使用docker remote api 需要手动绑定端口. 在centos7.2下,可以进行这 ...
- nginx初步尝试
导师要我学习下nginx,弄个简单的负载均衡出来,具体就是请求发送到nginx上,然后nginx将请求转发到后面的两个jetty应用上,这两个应用的代码是一样的,只是监听的端口不同,由于是简单尝试,因 ...
- 【阿里云产品公测】性能测试服务PTS的初步尝试
性能测试服务PTS,对于像我这样对测试毫无概念的新手来说,这服务真的太好了,使用简单,官方教程又明细,连我这样的新手一看都明白了怎样使用. _%GGl$kH 下面是我来简单尝试一下,更多功 ...
随机推荐
- Egret白鹭H5小游戏开发入门(一)
前言: 好久没更新博客了,以前很多都不会,所以常常写博客总结,倒是现在有点点经验了就懒了.在过去的几个月里,在canvas游戏框架方面,撸过了CreateJS,玩得了Egret,又学过PIXI.js. ...
- [Android]ListView的Adapter.getView()方法中延迟加载图片的优化
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4139998.html 举个例子吧,以好友列表为例 ListVi ...
- Android 手机卫士--构建服务端json、请求网络数据
本文地址:http://www.cnblogs.com/wuyudong/p/5900384.html,转载请注明源地址. 数据的传递 客户端:发送http请求 http://www.oxx.com/ ...
- 【代码笔记】iOS-点击一个按钮会出现多个按钮的动画效果
一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...
- 安卓开发第一步:Android Studio安装配置
虽然本人是JAVA开发工程师平时主要开发Web App,但因为项目需求需要开发对应的移动端.一时又找不到合适的安卓开发人员,兄弟我只好被项目经理"抓来当壮丁了".俗话说好" ...
- 在【Xamarin+Prism开发详解三:Visual studio 2017 RC初体验】中分享了Visual studio 2017RC的大致情况,同时也发现大家对新的Visual Studio很是感兴趣。于是发时间深入研究了一下Visual Studio 2017RC 是不是和微软Connect()://2016上说得一样神。
总共列出了12点,耐心点慢慢看! 1,添加了不少[代码样式]的设置项目. 通过合理的设置每个人都能写出优美的代码,而且团队项目也可以达到统一代码风格. this首选项:可以设置[字段,属性,方法,事件 ...
- HTML和CSS高级指南——定位详解
本文由大漠根据Shay Howe的<An Adavnced Guide to HTML & CSS>第二课<Detailed Positioning>所译,整个译文带有 ...
- Windows Azure服务
一. 存储服务 Azure存储服务是云端的文件存储服务,通过http/https访问和权限控制有以下三种特性 1.本地数据中心冗余 (Local Redundant Storage,LRS) 在一个位 ...
- react学习笔记1
# 1.hello world 学习一个语言,最好的方式,我们需要去官网去查看文档(https://facebook.github.io/react),通过JSFiddle,便可以看到最简单的demo ...
- SSH新学
流程:model-->dao-->service-->impService-->action 如果只是操作单个的一个表,比如user表,则都写到user的流程中 如果要操作俩个 ...