S3C6410嵌入式应用平台构建(三)
构建了好久的系统,由于工作原因,没有及时写记录,目前我已经进展到构建yaffs2文件系统,启动Linux内核了。Uboot移植基本功能已经完成。
由于Uboot移植方法大致是一样的,我主要参考这位博友的博客来移植的,很是有代表性,确实能完成一些基本功能。
参考网址如下:http://blog.chinaunix.net/uid-28382924-id-3489648.html
由于步骤基本一样,我就不再重复他的内容,只说点需要重点关心的。
1. 对于nandflash代码复制问题
这个问题也是我和我同学之前有疑问的问题,我们ok6410上的nandflash页大小为4K, 而在进行重定位复制代码时候,先复制的是以2K页大小,复制4次,即8K,这个卡了我们很久,后来去阅读arm datasheet才发现,这是S3C6410的nandflash控制器所决定的。
2. 环境变量获取问题
这个问题,同样也是很棘手,因为从网上大多数找到的答案大多是,什么nandflash有坏块导致。可我去nand scrub,问题同样存在,幸亏我看到上面的博客,终于知道原因,原来我们在启动的时候,在复制u-boot代码到ram时,需要同时将环境变量也一并复制过去,至于复制的地址这就需要你自己在6410头文件中定义了。
3. 引导内核启动地址,需要和Linux内核入口地址匹配。
在移植uboot就注意这些吧,这样,基本的功能都有了,下面是我的Uboot启动界面。
[05/03-11:18:26:352]
[05/03-11:18:26:352]
[05/03-11:18:26:353]U-Boot 2010.03-svn3 (May 01 2014 - 19:26:53) for SMDK6410
[05/03-11:18:26:353]
[05/03-11:18:26:353]*******************************************************
[05/03-11:18:26:363] Welcome to Embedded System
[05/03-11:18:26:364] Base On S3C6410 Devolopment
[05/03-11:18:26:364] Date: 2014/4/15 22:00 PM
[05/03-11:18:26:375]*******************************************************
[05/03-11:18:26:375]
[05/03-11:18:26:376]CPU: S3C6410@533MHz
[05/03-11:18:26:376] Fclk = 533MHz, Hclk = 133MHz, Pclk = 66MHz (ASYNC Mode)
[05/03-11:18:26:376]Board: SMDK6410
[05/03-11:18:26:380]DRAM: 256 MB
[05/03-11:18:26:424]Flash: 0 kB
[05/03-11:18:26:424]NAND Flash: 2048 MB
[05/03-11:18:27:545]********************************************************
[05/03-11:18:27:545]Initial LCD controller
[05/03-11:18:27:559] clk_freq:9 MHz, div_freq:13 ,rea_freq:9 MHz
[05/03-11:18:27:559]
[05/03-11:18:27:560] HBP = 2 HFP = 2 HSW = 41,Hpixs:480
[05/03-11:18:27:560] VBP = 2 VFP = 2 VSW = 10,Vpixs:272
[05/03-11:18:27:577]FrameBuff:57e7a000
[05/03-11:18:27:579] LCD initialization Finished.
[05/03-11:18:27:580]********************************************************
[05/03-11:18:27:602]In: serial
[05/03-11:18:27:602]
[05/03-11:18:27:602]Out: lcd
[05/03-11:18:27:602]
[05/03-11:18:27:602]Err: lcd
[05/03-11:18:27:603]
[05/03-11:18:27:953]Net: DM9000
[05/03-11:18:28:971]Hit any key to stop autoboot: 0
S3C6410嵌入式应用平台构建(三)的更多相关文章
- S3C6410嵌入式应用平台构建(一)
[2014-4/8~4/10]目前我们已经积累一定的嵌入式相关知识,对嵌入式的架构及开发过程有了大体了解,唯一缺的就是实践,通过自己的分析搭建自己的嵌入式系统.下面,我将从此处开始记录我和我同学一起分 ...
- S3C6410嵌入式应用平台构建(六)——linux-3.14.4移植到OK6410-(Yaffs2文件制作)
本文主要讲怎用利用yaffs2工具和busybox制作yaffs2文件系统镜像.大多数都是参照网上的,目的在于记录学习,不做任何用途. 一.制作mkyaffs2image工具 进入yaffs2源码目录 ...
- S3C6410嵌入式应用平台构建(五)——linux-3.14.4移植到OK6410-(Nand分区问题)
前一篇文章,我们的Linux能后启动了,只是在识别nand时候,没有获取到时钟源,导致后面的分区没哟进行. 我们从启动的log发现: [06/08-11:25:41:371]s3c24xx-nand ...
- S3C6410嵌入式应用平台构建(四)——linux-3.14.4移植到OK6410-(初步启动)
这次,还是把基本的基于我目前最新的Linux源码进行移植到OK6410吧,同时也写下我移植过程中遇到的问题及解决方法,不过有些方法是借鉴网上的,有些是自己加的,会有一些小bug. 一.基本工作 1. ...
- S3C6410嵌入式应用平台构建(二)
[2014-4/11~4/14]经过之前的实验,对Uboot已经有了大体的了解,前我们已经把led灯给点亮,但这不是我们的根本目的,我们是要进入boot启动,经过两天的分析代码和反复的实验,终于可以进 ...
- 【Microsoft Azure 的1024种玩法】三.基于Azure云平台构建Discuz论坛
[简介] Discuz!是一套通用社区论坛软件系统,用户在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能.很强负载能力和可高度定制的论坛服务. [前期文章] [操作步骤] ...
- Unity跨平台C/CPP动态库编译---可靠UDP网络库kcp基于CMake的各平台构建实践
1.为什么需要动态库 a)提供原生代码(native code)的支持,也叫原生插件,但是我实践的是c/cpp跨平台动态库,这里不具体涉及安卓平台java库和ios平台的objectc库构建. b)某 ...
- SharpGL学习笔记(一) 平台构建与Opengl的hello World
(一)平台构建与Opengl的hello World OpenGL就是3d绘图的API,微软针和它竞争推出D3D,也就是玩游戏时最常见的DirectorX组件中的3d功能. 所以不要指望windows ...
- Unity3D跨平台动态库编译---记kcp基于CMake的各平台构建实践
一 为什么需要动态库 1)提供原生代码(native code)的支持,也叫原生插件,但是我实践的是c/cpp跨平台动态库,这里不具体涉及安卓平台java库和ios平台的objectc库构建. 2)某 ...
随机推荐
- Compiling Qt 5.5.1 (With Qtwebkit) With Visual Studio 2015
I usually avoid writing articles about building a specific version of a software project but this ti ...
- C++关键字之static
一.面向过程设计中的static 1.静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量.我们先举一个静态全局变量的例子,如下: [cpp] #include& ...
- 多项式ADT的数组实现
/*删除表的正确方法*/ /*assume header*/ void DeleteList(List L) { Position p,Tmp; p=L->Next; while(p != NU ...
- libiconv_百度百科
libiconv_百度百科 由于历史原因,国际化的文字常常由于语言或者国家的原因使用不同的编码.目录 1libiconv历史简介 2libiconv编码简介 3libico ...
- c++适配器模式
你想使用一个已经存在的类,而它的接口不符合你的需求. 创建一个类需要和其他类协同完成任务,需要一个适配器将其他类的方法都转接到适配器当中 什么是适配器模式:有一个目标客户类想适用已经存在类的接口,但是 ...
- android 基本控件使用
http://tech.it168.com/a2012/0321/1327/000001327704.shtml Android_ListView_用代码控制ListView的位置 有三种方法 mli ...
- 利用协议代理实现导航控制器UINavigationController视图之间的正向传值和反向传值
实验说明 (1)正向传值:比如A类里地值要传给B类用,就是我们先在A类中声明一个B类对象(当然B类头文件要import过来),然后把A类中得某个 值传递给B类中得某个值(所以需要在B类中先准备一个变量 ...
- NotificationManager 发送通知
该应用的界面如下,界面代码在此不再给出,源码github账户下载 MainActivity.java public class MainActivity extends Activity { priv ...
- ZOJ3784 String of Infinity 高大上的AC自动机 数据原来这么水啊!不算输入输出只有5-7行
找给定s集合里面word全部是同一个字符的,这样的word有几个,如果数量<m就yes,否则就no.#include<iostream> #include<cstring> ...
- Datatable根据多行排序
DataTable dt = new DataTable(); dt.Columns.Add("ID", typeof(int)); dt.Columns.Add("Na ...