从零开始学OK6410
文章平均质量分 76
本专栏介绍从零开始学习OK6410的历程,从最简单的点灯开始到驱动的编写最后到uboot、kernel、文件系统移植。
shop_ping
这个作者很懒,什么都没留下…
展开
-
0K6410学习之初步制作yaffs2文件系统
1. 建立脚本文件make-yaffs2-dir.sh 内容如下#!/bin/shecho "------Create rootfs directonsstart...--------"mkdir rootfscd rootfsecho "--------Createroot,dev....----------"mkdir root dev etc boot tmp v原创 2014-01-10 11:58:53 · 2064 阅读 · 0 评论 -
0K6410学习之移植linux内核支持yaffs2文件系统
环境: PC机系统:Redhat6.1目标板: OK6410目标板系统:linux3.0.101编译器: arm-linux-gcc4.3.2 1. 进入make menuconfig后 Boot options ---> 输入noinitrd console=ttySAC0,115200root=/dev/mtdblock2 ini原创 2014-01-10 11:53:51 · 1975 阅读 · 0 评论 -
0K6410学习之linux移植nand flash
环境: PC机系统:Redhat6.1目标板: OK6410目标板系统:linux3.0.101编译器: arm-linux-gcc4.3.2 1. 进入linux-3.0.101/arch/arm/mach-s3c64xx/mach-ok6410.c文件,找到nand分区的那个结构体。如下:修改nand分区如下:2. 在原创 2014-01-10 11:49:29 · 2018 阅读 · 0 评论 -
关于内核配置选项中没有yaffs2这个选项问题的解决方案
从官方网站http://www.aleph1.co.uk/gitweb?p=yaffs2.git;a=summary下载yaffs2源码,解压后给linux3.6.7打补丁:./patch-ker.sh c m /kernel directory,完后看到fs目录下的Kconfig和Makefile文件都有增加yaffs2相关内容;fs目录下也多了yaffs2文件夹。基本上说明打补丁成功了,接下来转载 2014-01-08 13:53:55 · 3256 阅读 · 0 评论 -
0K6410学习之初步移植linux内核
环境: PC机系统:Redhat6.1目标板: OK6410目标板系统:linux3.0.101编译器: arm-linux-gcc4.3.2 1. tar -xf linux-3.***2. make distclean 清楚所有中间文件和配置文件3. 进入linux-3.***/arch/arm/mach-s3c64xx目录,我们能原创 2014-01-07 19:13:53 · 1683 阅读 · 0 评论 -
对uboot中BSS段的理解
一个程序里面包含有数据段、代码段、BSS段。而BSS段中存放的是一些未初始化的静态变量、全局变量,为了合理的使用内存,那么在最后编译出来的.bin文件中BSS段是不存在的。针对这个我自己给自己提出问题,以下答案依据个人理解,可能我描述有些问题,也可能我理解的不对,希望有朋友给我指出来,谢谢!1、既然BSS段在最终编译出来的文件中是不存在的,那么,BSS还有什么作用呢?答:因为在程序编译链接原创 2013-03-31 08:56:53 · 5148 阅读 · 1 评论 -
链接和程序的关系
DDR=Double Data Rate双倍速率同步动态随机存储器。严格的说DDR应该叫DDR SDRAM,人们习惯称为DDR,现在我们来分析一下DDR的初始化一个程序分为:代码段、数据段、BSS段代码段:指令之类的东西数据段:有初始值并且初始值不为0的全局变量或者静态变量BSS段:初始值为0或者无初始值的全局变量和静态变量例如:volatile int i = 0;原创 2013-03-31 08:54:02 · 1439 阅读 · 0 评论 -
0K6410学习之初步Uboot移植
一个人跌跌撞撞终于来到了Uboot的移植,经过这几天对uboot源代码的分析,可以说得上是获益匪浅,也可以说收获不多吧,唉,知识实在是匮乏啊,Uboot代码中相当多的句子看不明白,很多都是猜测性的,或许我有生之年也写出那样的代码吧,不发牢骚了,开始今天的学习了。好吧,既然是Uboot的移植,那么我们首先搞清楚为什么要对Uboot进行移植呢?两个原因,uboot虽然名为通用的bootloader原创 2013-03-31 08:50:32 · 2524 阅读 · 0 评论 -
0K6410学习之Nand Flash的学习
接下来看看nandflash,首先从硬件上面来了解nand flash s3c6410核心板手册有如下的K9GAG08DATA只有8根,所以必定有:1、 地址、数据复用2、 地址多次发出的可以看出会发出5个周期的地址信号3、 读写nandflash的时候仅仅只发出地址数据还是不行的,还需要发出命令,这就涉及到命令数据复用具体命令从芯片手册上面可以查看到的原创 2013-03-31 08:39:15 · 1963 阅读 · 0 评论 -
0K6410学习之make_smdk6410_config
一、使用板级配置命令:make smdk6410_config,然后在根目录下面makefile中找到########################################################################### ARM1176 Systems######################################################原创 2013-03-31 08:35:17 · 1643 阅读 · 0 评论 -
0K6410学习之make_all
Uboot的makefile太庞大了,分析起来也太复杂了,推荐一个好点的方法,就是通过make之后打印的信息逆向分析吧,个人感觉,对于我们的自己的板子来说,makefile里面能用到的东西实在是相当少的一部分,所以,找个时间,把makefile修改一下吧,看起来真特么的吓人3800行代码摆在那里。。都是些火星文.. ; \ / 。。。。。我勒个去!!还是简单总结一下吧,1、原创 2013-03-31 08:32:15 · 1533 阅读 · 0 评论 -
0K6410学习之初识Makefile
之前在看国嵌的视频的时候也接触过makefile,但是好多东西就是这样学过之后就忘记了,根本原因就是自己不会总结或者说自己没有总结,所以做了很多无用功,一味的去深究一些无关痛痒的东西。扯远了,废话不多说,为了分解uboot,我踏上了学习makefile的道路,步入正题!一、 makefile的组成 更为详细的描述,也就是下面的格式:ta原创 2013-03-31 08:28:36 · 1311 阅读 · 0 评论 -
0K6410学习之初学Uboot_stage2
0K6410学习之初学Uboot_stage2唉,刚刚老同学们打电话来找我月底出去聚一聚,我发誓这是我第一次这么冷静,也就是不像以前一样,不经过考虑,就一口答应下来。因为,我觉得我有很多重要的事情要做,像我这种不准备考研的学生,我必须要抓住假期的时间给自己充电,老朋友们,不好意思,请原谅我这次善意的谎言,给我在校的学习时间不多了,请接受我这次偷偷的道歉。好吧,既然已经烧好一壶水了,那就开始我的原创 2013-03-31 08:23:46 · 1513 阅读 · 0 评论 -
0K6410学习之初学Uboot_stage1
今天喝的水真多,如我所言,已经有3天没有看空间了,表现不错。确实,空间里面似乎没有什么值得我关注的了,呵呵。恩,刚刚粗略的将u-boot-2010.03的里面arm11的源代码看了一下,我用的是ARM11的板子,里面有一些是参考了arm9的分析资料,分析完后还是觉得有必要总结一下的,以防自己忘记,好的,说正题,stag1。声明:里面有些东西可能是我误解了,仅供参考,欢迎大家一起交流。一、原创 2013-03-31 08:17:04 · 1806 阅读 · 0 评论 -
OK6410之使用串口烧写运行全裸程序
1、用串口烧写只是因为想体验体验全裸的感觉。该烧写方法仅适用于烧写小程序,同时手上又只有串口线、电源线,在没有网络的情况下。想体验的就赶紧试试吧!2、打开XP下面的超级终端,串口配置之类的就不多说了,设置为SD卡启动,首先烧写SD卡的uboot吧。3、完事后,从SD启动开发板,快速敲入空格停留在autoboot下面键入命令loady4、等待发送文件,然后终端菜单栏的传送里面选择发送原创 2013-03-08 21:41:06 · 2103 阅读 · 0 评论 -
飞凌OK6410之触摸屏的学习
一、LCD的显示介绍完了之后,在这个基础上就需要了解触摸屏的相关知识了,同样的,使用触摸屏的话就需要进行初始化了,上次已经说过了,在芯片手册上面可以看到这个这个四个引脚是控制触摸屏的,接下来我呢就根据s3c6410的手册来分析一段代码:主函数相当简单:LCD初始化已经明白了,接下来就是对触摸屏进行初始化了1、 假设当触摸道屏幕的时候发生的是外部中断VIC1的第三十原创 2013-03-08 21:38:46 · 2927 阅读 · 7 评论 -
飞凌OK6410之LCD的学习
接下来就开始进行LCD的学习了:LCD这节涉及到的寄存器也是比较多的,我么一步步来分析从LCD手册可以看到下面一段话从而可以明白,该LCD是一块TFT屏幕,含有背光、触摸等功能,尺寸为480*272,该面板可以显示之多16.7M色彩。1、 废话不多说,首先进行LCD的初始化:GPIO管脚配置:不懂的自己查手册去2、 关显示,防止乱码原创 2013-03-08 21:31:30 · 2091 阅读 · 0 评论 -
飞凌OK6410之IIC的学习2
上一博文已经基本上了解IIC的基础知识,其实我自己还有几个知识盲点,因为我是学完51后,接触了msp430,然后用430做了一个项目之后,直接玩OK6410的所以感觉有许多知识都不是很了解,下面先把我的几个知识盲点列出来,高手直接忽视~~· 1、首先我们分析这个程序的时候,需要用到串口打印ROM里面的数据信息,所以串口初始化不必多说(注意:即使是串口的初始化也是对GPIO进行操原创 2013-03-08 21:21:16 · 1650 阅读 · 0 评论 -
飞凌OK6410之IIC的学习1
通过讲解一个利用IIC读取ROM数据的例子来学习IIC。一、首先了解一下预备知识:1、IIC总线介绍 IIC(Inter-Integrated Circuit,内置集成电路总线)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。IIC总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,这对于缓解嵌入式系统资源少的缺陷有很大好处。总线的长原创 2013-03-08 21:13:47 · 1921 阅读 · 0 评论 -
飞凌Ok6410之SDRAM的学习
由于程序太大导致程序运行会出错误,也就是8K的内容不够用,这时候就需要用到DDR,前面的博文提到过,但是在使用DDR之前,我们需要初始化DDR,初始化DDR之前我们先来了解一下DDR,打开OK6410核心板的电路图可以找到DDR、2片然后找到DDR的芯片手册可以知道DDR能提供128M的容量这样算可以得到容量=32M*16bits*2=4*32M字节也就是128M字原创 2013-03-08 21:10:49 · 2064 阅读 · 0 评论 -
飞凌OK6410学习之串口的学习
下面就开始串口的学习了,关于串口的基本知识,稍微说下:首先OK6410向PC机发送数据。具体流程为:TXD,平时为高电平,当要发送数据的时候那么TXD就要拉低一段时间,这称为起始位。然后发送需要发送的数据(先高后低),这段称为数据位。最后还有一个停止位,当然肯定是拉高了(等待下一次的数据发送)同时PC机要接收来自OK6410的数据。接收流程为:开始PC机接收到的是高电平,当出现低电平的时候原创 2013-03-03 09:31:48 · 1691 阅读 · 0 评论 -
飞凌OK6410学习之中断的学习 继续。。
假设我们中断多了,是不是要在程序中一个个的把中断写上去呢?答案是否定的,这里我们就需要用到中断向量控制器;S3c6410中含有两个中断控制寄存器:中断控制器的处理机制:1、发生中断后,矢量地址VICxVECTADDR0~VICxVECTADDR31相应一个寄存器的值就会赋给VICxADDRESS2、中断服务寄存器就可以根据VICxADDRESS中的值来分辨是哪一个中断,发生中断原创 2013-03-01 16:35:40 · 1124 阅读 · 0 评论 -
飞凌OK6410学习之中断的学习
接下来就是中断了,记得我有个同学说,你没有搞懂中断说明你没有学单片机,是呀,中断确实是单片机的精华部分,废话不多说,直接进入正题:中断也是一种异常模式,这在我们上一节的异常学习中就知道了。中断有GPIO中断、UART中断、触摸屏中断等等。。。。下面谈谈如何使用中断1、 进行中断初始化(以按键为例)A、 设置中断源B、 设置中断控制寄存器C、 打开总开关首先找到中原创 2013-03-01 16:30:36 · 1187 阅读 · 0 评论 -
飞凌OK6410之异常模式的学习
首先,关于sourcesight的使用,我之前有几个不知道的地方,我先记录下来!!我想大家都知道默认情况下,往Source Insight里输入中文,字间距相当的大,这篇文章将帮助你解决这个问题。具体设置如下:1.Options->Style Properties2. 在左边Style Name下找到Comment Multi Line和Comment.在其右边对应的Font属性框下的原创 2013-02-28 14:47:44 · 1224 阅读 · 0 评论 -
飞凌OK6410之时钟的学习
关于OK6410的时钟部分,从s3c6410的手册上面我们可以在system controller里面找到相关的系统控制器:Power表示上电,待上电稳定后,12M晶振起振后也稳定下来,接着CPU就能获得一个比较稳定的时钟频率(12M)如果想要改变晶振的频率,我们就给他一个locktime,在locktime内,VCO就能够通过倍频处理将主频提高,locktime结束后,CPU就能原创 2013-02-28 14:41:08 · 1438 阅读 · 1 评论 -
飞凌OK6410之点亮LED
下面可以开始点亮第一个LED灯了,在0K6410的底板图上可以看到这个说明是低电平点亮的然后在s3c6410的地板手册上面可以找到这个可以知道LED的对应关系是—>LED1GPM1LED2GPM2LED3GPM3LED4GPM0LED1接着从s3c6410的手册上面可以查找到这个通过上述地址就可以继续设置相关的寄存器了1、原创 2013-02-28 14:34:06 · 1451 阅读 · 0 评论 -
飞凌OK6410学习之看门狗
飞凌OK6410学习之看门狗拿到开发板有一段时间了,今天开始,就用博客来见证我学习OK6410的过程,暂时就用这个吧!!OK,废话不多说,直入主题!众所周知,在6410开发板上面写裸机程序,一上来是需要关闭看门狗的,那么看门狗到底是个什么东东呢?下面我们一起来分析一下。看门狗相当于一个定时器,CPU启动时,会进行倒计时,一般为三秒钟左右,如果在这三秒内不关闭看门狗的话,CPU将原创 2013-01-16 19:23:59 · 2600 阅读 · 4 评论