自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (8)
  • 收藏
  • 关注

原创 第二十章、 Tiny4412 U-BOOT移植二十 增加cleanlcd命令

这一章学习增加一个命令,那么增加一个什么命令呢?大家可能也会看到LCD上显示的字符由于没有换行和对齐,显示一会后,字符就相互重叠了,好吧,就增加一个清楚LCD显示的命令,当然我也希望他能设置颜色了。一、命令格式说明关于如何命令的说明网上有好多资料,我这里仅仅简单的说明一下:U-Boot的每一个命令都是通过U_Boot_CMD宏定义的。这个宏在头文件中定义。如下所示:#ifdef C

2014-07-08 17:35:30 1703

原创 第十九章、TIny4412 U-BOOT移植十九 LCD移植

这一篇主要参考博文:http://5istt.com/cookies/blog/?post=122《s5pv-u-boot-2011.06之增加LCD显示功能.PDF》的文档 其实我一直就只想学一点东西,当时心太大了,就直接买了Tiny4412,才发现这是一块硬骨头,网上资料少的可怜,FriendlyARM给的资料基本就是代码,说明性、讲原理的东西也没有。看了好久才发现其给的U-B

2014-07-08 17:29:02 5755 1

转载 第十五、十六、十七、十八章、TIny4412 U-BOOT移植 LCD原理分析一、二、三、四

首先说明一点,以后几篇关于LCD的原理分析,均来自于网络上这一篇博文,其内容可以说是完全复制于此,这里复制下来,是留个备份给自己学习,这里整理在一起也是方便大家学习。以下内容转自:http://blog.csdn.net/xubin341719/article/details/9125583

2014-07-08 17:26:55 2478

原创 第十四章、TIny4412 U-BOOT移植十四 编译产生内核

一、修改过文件说明由于前面好几章,每一个文件修改的地方都很多,一一记录太费时间,所以都说了很多原理性的东西,这里将我修改过的文件作一个总结,这里所说的修改过的文件是相对于第一章创建完的u-boot平台代码。1、/makefile2、sd_fuse整个文件夹,我整个复制了FriendlyARM所提供的uboot下的sd_fuse文件夹,因为这个文件是用来烧写SD卡的,所以我直接复制使用了

2014-07-08 17:20:44 2448 4

原创 第十三章、Tiny4412 U-BOOT移植十三 DDR3初始化源码分析

第一步、设置时钟         按上一章中步骤来说明:1.  DMC must assert and hold CKE to a logic lowlevel to provide stable power for memory device and then apply stable clock.设置DMC,由于时钟已经在clock_init_mytiny4412.S中进行了设置,

2014-07-08 17:18:46 3061 1

原创 第十二章、Tiny4412 U-BOOT移植十二 DDR3初始化顺序

现在网上很难搜到Exynos4412的源码,基本上我没有找到任何资料有过分析DDR3的内存初始化代码的。在看U-Boot的这段代码时,也徘徊了很久,不知道如下手,很多文章或资料都将这一段分析过程有意无意的隐藏掉了,最多也只是提一下说参考裸板的代码,在找不到任何资料的情况下,我只能依靠芯片手册上,三星在内存控制器这一章,写的关于DDR3的初始化顺序的21个步骤来一条一条去读去看,在安静下来看了芯片手

2014-07-08 17:15:40 3518 1

转载 第十一章、Tiny4412 U-BOOT移植十一 DDR3简单介绍

由于Tiny4412所用的芯片是DDR3,我从网上找一片介绍DDR3的原理的博文,虽然很多原理是一致的,但还是想着这些资料难搜集,而且多看一次除了费点时间外,我想不到别的坏处,那就在看一次,以便以后在修改代码时,已能对DDR3的所有参数非常清楚,网址http://blog.csdn.net/wshini7316/article/details/8508836此博文以是镁光的(Micron MT

2014-07-08 17:15:16 3812

转载 第十章、Tiny4412 U-BOOT移植十 DDR工作时序与原理二

这一篇基本上也是我从网上各处整理来的,具体的转载位置我也不清楚了。

2014-07-08 17:05:38 1982

转载 第九章、Tiny4412 U-BOOT移植九 DDR工作时序与原理 一

这一篇基本上也是我从网上各处整理来的,hw

2014-07-08 17:00:14 2047

转载 第八章、Tiny4412 U-BOOT移植八 SDRAM工作时序与原理

DDR出身自SDRAM,严格的说应该叫DDR SDRAM,DDR SDRAM是Double Data Rate SDRAM的缩写,是双倍速率同步动态随机存储器的意思,所以,有很大一部分,两者是一样的,理解SDRAM,然后再来理解DDR。在SDRAM上的改进,效果应该更好一些,这里要感谢Chinaunix.net的大神--Tekkaman Ninja,我的内存的学习资料都是Tekkaman Ni

2014-07-08 16:45:22 2152

原创 第七章、Tiny4412 U-BOOT移植七 DDR内存配置

上次讲完了Nand Flash的低级初始化,然后Nand Flash的操作主要是在board_init_f_nand(),中,涉及到将代码从Nand Flash中copy到DDR中,这个放到后面实际移植的过程中再结合源码流程来分析,正常来说,DDR应该是放在Nand Flash前面开始讲,因为DDR相对于Nand Flash来说,更加复杂一些,所以,将DDR拖后来说了,OK,接着开始讲DDR。

2014-07-08 15:59:06 4140

原创 第六章、Tiny4412 U-BOOT移植六 Nand Flash源码分析

一、U-Boot参考源码 NandFlash的初始化代码我们放在board/samsung/tiny4412/lowlevel_init.S ,这一段代码是三星SMDK4212中没有提供的,所以我们需要自己写。我们在里面增加一个函数叫nand_asm_init。当然,由于Nand Flash的操作是有一定的规律的,所以,我们可以去别的地方找一段写好的NandFlash源码,然后根据自己的电路原

2014-07-08 15:44:36 2508

原创 第五章、Tiny4412 U-BOOT移植五 Nand Flash原理

此tyanTiny4412中是没有焊接NandFlash的,取而代知的是eMMC芯片,所以这一节我也没有细细的去看,为了自己以后可能会修改这部分代码,我将网友“南山一梦”关于NandFlash基本原样的复制过来了。里面内容基本没有作太多修改。后面我会试着来分析eMMC如何操作。 一、芯片简介虽然Tiny4412中没有焊接NandFlash,但PCB板上是有这部分电路的,原理

2014-07-07 23:20:03 3551

原创 第四章、TIny4412 U-BOOT移植四 配置时钟频率源码分析

上篇讲了配置时钟的原理,今天就结合源码具体分析一下。在U-Boot的源码中,系统时钟的初始化是放在板文件夹下的(board/Samsung/mytiny4412)的clock_init_zthtiny4412.S文件中的system_clock_init函数中。我们的Tiny4412是拷贝的smdk4212来的,所以,大家可以先参看smdk4212的clock_init_smdk4212.S文件中

2014-07-07 23:05:05 3028 1

原创 第三章、Tiny4412 U-BOOT移植三 时钟设置

这一章说明配置时钟频率基本原理OK,接着说,这次先讲讲CPU的系统时钟。U-BOOT在启动的过程中,需要配置系统时钟,没有这东西,CPU就跑不起来。配置系统时钟,大致是以下几个步骤:(1)设置系统PLL锁定时间(2)配置PLL(3)配置各模块分频系数(4)切换到PLL时钟一、基本原理如下图3-1所示是Tiny4412 (Exynos4412)的核心板,板子最上面的是27

2014-07-07 17:22:57 3547 2

原创 第二章、Tiny4412 U-BOOT移植二 启动分析

一、启动过程说明       讲解启动过程,首先的源头就是打开电源,这个相信没人人不知道。CPU上电后,此时SP指针指向0x0000_0000,从这个地址取第一条指令。但此时:PLL没有启动,CPU工作频率为外部输入晶振频率,非常低(Exynos4412芯片边上有一颗24MHz,一颗27MHz,一颗32.768KHz);CPU的工作模式、中断设置等不确定;存储空间的各个BANK(包括内存)都没

2014-07-07 17:16:21 6658

原创 第一章、Tiny4412 U-BOOT移植一 说明

第一章、4412 U-BOOT移植一 说明一、移植前说明:1、  特别声明:此文档是我的学习文档,里面肯定有错误地方,仅供参考!2、移植平台:友善之臂Tiny4412SDK1306平台。3、移植系统:Ubuntu12.044、移植原始CODE:平台光盘中由Samsung提供的U-Boot-samsung-dev.tar.bz2。为什么用这个,只能说因为我也菜鸟,我找了u-boo

2014-07-07 17:01:24 7630 6

原创 tiny4412 裸机程序 九、串口排查驱动原因及字符图片显示

一、实验原理大家可能会有疑问,不是在BL2目录中的mem_init_tiny4412.S实现了串口初始化了,且也有串口输出函数,要不然怎么串口调试助手上怎么会有打印信息呢,这里为什么还要重新初始化?其实我觉得也可以不用重新初始化,但至少也要实现Printf()这个标准函数里要调用的串口输出函数吧,因为初始化工作在时钟没有改变的情况下,可以只初始化一次,但是到LCD初始化这一步时,CPU已经重定

2014-07-07 00:14:33 2825 2

原创 tiny4412 裸机程序 八、重定位到DRAM及LCD实验

一、实验原理上一章已经解释的很清楚了,如何将所要运行的user_bin程序定位到DRAM中,这一章要进行重定位到DRAM后运行LCD程序,实际上一章中BL2中程序可以不用改动,直接重写我们的USER目录下的程序即可,将USER目录下的LED灯闪烁程序用LCD程序替换就行,最后编译出的程序名字也叫user_bin.bin即可,这样也可以用上一章中的fast_fuse.sh进行烧写到SD卡运行。

2014-07-06 23:56:39 4844 1

原创 tiny4412 裸机程序 七、重定位代码到DRAM

一、关于DRAM上一章我们讲解了如何对代码进行重定位,但是将代码重定位到只有256K IRAM中作用不大。正确的做法是将代码重定位到容量更大的主存中,即DRAM。Exynos4412中有两个独立的DRAM控制器,分别叫DMC0和DMC1。DMC0和DMC1分别支持最大1.5G的DRAM,它们都支持DDR2/DDR3和LPDDR2等,512 Mb, 1 Gb, 2 Gb, 4 Gb and

2014-07-05 23:58:14 3970

原创 tiny4412 裸机程序 六、重定位代码到IRAM+0x8000

一、重定向对于程序而言,我们需要理解两个概念,一是程序当前所处的地址,即程序在运行时,所处的当前地址;二是程序的链接地址,即程序运行时应该位于的运行地址。编译程序时,可以指定程序的链接地址。对于Tiny4412而言,启动时只会从MMC/sd等启动设备中拷贝前16K的代码到IRAM中,那么当我们的程序超过16K怎么办?那就需要我们在前16K的代码中将整个程序完完整整地拷贝到DRAM等其他更大存储

2014-07-05 23:53:54 2078

原创 tiny4412 裸机程序 五、控制icache

一、什么是cache基于程序访问的局限性,在主存和CPU通用寄存器之前设置了一类高速的、容量较小的存储器,把正在执行的指令地址附件的一部分指令或数据从主存调入这类存储器,供CPU在一段时间内使用,这对提高程序的运行速度有很大的作用。这类介于主存和CPU之间的高速小容量存储器称作高速cache。比较常见的cache包括icache和dcache。icache的使用比较简单,系统刚上电时,icac

2014-07-05 23:50:16 1917 1

原创 tiny4412 裸机程序 四、设置栈和C语言点亮LED

一、为什么调用C函数要设置栈1.  栈的整体作用1)  保存现场;2)  传递参数:汇编代码调用C函数时,需传递参数;3)  保存临时变量:包括函数的非静态局部变量以及编译器自动生成的其他临时变量;2.  详细解释1)  保存现场现场,意思就相当于案发现场,总有一些现场的情况,要记录下来的,否则被别人破坏掉之后,你就无法恢复现场了。而此处说的现场,就是指CPU运行的时候

2014-07-05 23:48:17 2382 5

原创 tiny4412 裸机程序 三、关闭看门狗和调用C程序

一、原理说明上是章中大家可能有会觉得奇怪,CPU不是有看门狗嘛?为什么CPU没有复位,程序还能正常工作呢?查看Eyxnos4412的手册,第5章简要的说明了其启动顺序,如下图3-1所示是Eyxnos4412启动顺序图,这里虽然没有说的很清楚,但内部iROM和BL1程序中是起一些初始化时钟,DRAM等工作的,其也可能已经使看门狗不工作了。所以上一章程序中,我们也没有人为的关闭看门狗,程序也能

2014-07-05 23:38:24 3142

原创 tiny4412 裸机程序 二、汇编点亮LED灯

一、控制原理说明首先查看《Tiny4412_1306_sch.pdf》原理图,找到我们想控制的LED灯,如下图2-1所示。图2-1、LED灯电路原理图如上图1可知,PCB板上有4个LED灯可受IO控制的,控制它们四个引脚分别是GPM4_0~ GPM4_3,由原理可知,当IO引脚为高电平时,LED灯灭,当IO引脚为低电平时LED亮。我们要做的工作就是设置GPM4_0~ GPM

2014-07-05 23:34:50 6754 9

原创 tiny4412 裸机程序 一、说明

首先、我想说明为什么我写这个文档?我自己想学点东西,过于求成,又过于自信,直接买了Tiny4412的板子,但网上关于4412的资料太少,我一直没办法啃动,只能尽可能找来各种相关资料进行参考分析。我想在U-Boot程序中加入LCD显示功能,但始终都没有正常点亮LCD,放弃的心都有了,后来在网上找到一份《Linux平台下Mini210S裸机程序开发指南》的文档,我觉得写的挺清楚的,我也只能二一点了,先

2014-07-05 23:27:24 4170 1

4412 u-boot 0.3版

v0.3对应后面增加LCD驱动的代码,主要是第19章代码的变动,且增加一个cleanlcd命令

2014-07-07

4412 u-boot 0.2版

V0.2对应载客中uboot移植

2014-07-07

4412 u-boot 0.1版

V0.1对应载客中uboot移植第一章裁剪后的代码。

2014-07-07

tiny4412裸机相关程序

tiny4412裸机相关程序 : 1、汇编点亮LED灯 2、关闭看门狗和调用C程序 3、设置栈和C语言点亮LED 4、控制icache 5、重定位代码到IRAM+0x8000 6、重定位代码到DRAM 7、重定位到DRAM及LCD实验 8、串口排查驱动原因及字符图片显示

2014-07-07

博客中 tiny4412裸机相关程序 6-8

6、重定位代码到DRAM 7、重定位到DRAM及LCD实验 8、串口排查驱动原因及字符图片显示

2014-07-07

linux 程序设计 第四版 英文版 Beginning Linux Programming

linux 程序设计 第四版 英文版Neil Matthew Richard Stones

2013-12-23

Samsang S5PV210 完整版手册

S5PV210 完整版datasheet

2013-12-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除