jz2440
守望尼罗河畔的初心
不喜欢debug的疯子
展开
-
jz2440开始(一)
工作上玩过了全志A20,瑞芯微RK3288后,愈发觉得这些芯片很多地方玩不转,原因很简单因为对硬件不够熟悉,加上安卓框架过于庞大。 为了弥补这个缺陷,加上2440在网上资料比较多,更容易快速系统的学习。所有有了这个开篇,当然在接下去的一段时间内,玩的都会是uboot. 那么首先先搭建一个开发环境,这里买了韦东山开发的jz2440,主要是还是因为资料给的比较多吧,看到原创 2016-04-27 15:42:41 · 2593 阅读 · 0 评论 -
jz2440烧录(二)
前面编译好了uboot和kernel现在就看看编译出来的东西有没有用? 2440烧录裸机程序和Uboot似乎只能用jlink之类的工具来烧写,也难怪很多手机刷机把uboot刷坏了就只能返厂修了,原因很简单没有烧的工具了。 uboot以上的层次直接用uboot自带写入就好了。 这里uboot中的烧录功能就不演示了,主要是演示一下,裸板原创 2016-05-02 20:13:20 · 830 阅读 · 0 评论 -
第一个程序测试(三)
第一个程序就low一下点亮一下LED为了测试开发环境准确无误。先看一下原理图:我们看到开发板有3个灯,nLED_1 为低电平的时候亮。对应的分别为GPF4 GPF5 GPF6GPIO的控制方法在芯片的手册的I/O port这章。设置这两个寄存器就可以了PORT CONFIGURATION REGISTER原创 2016-05-02 20:32:58 · 509 阅读 · 0 评论 -
使用C语言(四)
从汇编跳入C语言,我们需要设置一下堆栈,才能正常使用。除此之外,硬件上还有一些东西需要初始化一下。1.关闭看门狗2.初始化时钟3.初始化内存 然后才是初始化堆栈。我们设置为Nand启动,开机会把前4k拷贝到片内内存SRAM中运行。如果是NOR启动,直接就在Nor上运行了,NOR不太清楚原理就先放弃。那么我们1.关闭看门狗,默认居然是开的原创 2016-05-02 20:35:22 · 478 阅读 · 0 评论 -
用开关控制LED(五)
这个比较简单,和之前说的控制LED没有本质的差别。我们看一下原理图开关和LED的位置。这里开关并不是灯连一起的,我们只能检测开关状态然后控制灯。裸机下不知道怎么控制中断寄存器,就先用GPIO的输入功能先了。我们把按键的gpio设置为输入功能,led的gpio设置为输出功能。一个循环来检测按键的状态,如果按下就给灯的gpio输出原创 2016-05-02 20:38:37 · 1851 阅读 · 0 评论 -
jz2440SDRAM连接方式(七)
首先我们关心板子的sdram是怎么连接到这个上面去的,看一下原理图两个片选信号同时连接到nGCS6并且看出每个芯片的是16跟数据线X2 组成32位地址线。接着观察地址地址13根,练到LADDR2----LADDR14BA0 BA1 接到ADDR24 ADDR25 【这个是片选择哪一个bank】这里有一个疑问为什么不是接到三星2440 A0原创 2016-05-02 21:03:17 · 3393 阅读 · 0 评论 -
s3c2440中断控制器(九)
翻到芯片手册的中断那一张,首先是一张图。S3C2440 的中断分为片内中断和片外终端,分别对应着SRCPND寄存器左边的两条路。 我们先看简单一条路,外部中断,例如GPIO触发的中断。 首先,当GPIO触发中断后,我们使得SRCPND相应的为置1,如果MASK屏蔽位或者被设置为FIQ(mode位置1) 则进入到中断优先级判定 通过原创 2016-05-27 01:00:29 · 1505 阅读 · 0 评论 -
jz2440内存实验(八)
前面花了大量力气去看芯片手册和SDRAM相关的管脚定义相关的内容。下面就应该把这个内存芯片给用起来,跑一段程序看看。在(四)中提到,机器初始化需要做的工作:1.关闭看门狗2.初始化时钟3.初始化内存 4.为C语言初始化堆栈。这里因为位对汇编语言的熟悉程序不够,且不说不是不够,是根本不想花时间研究指令怎么用。还有更多的是对于debug汇编语言的原创 2016-05-08 20:16:50 · 1344 阅读 · 0 评论