Jz2440
文章平均质量分 57
win9zz
Life is brief, and then you die, you know?
展开
-
ARM处理器工作模式
ARM有7种处理器模式,其由CPSR的[4:0]位决定。用户模USR:正常程序动行的工作模式。只能读CPSR不能写系统模式sys:与用户模式共用一套寄存器。用于支持操作系统的特权任务模式,但它具有直接切换到其它模式的特权。管理模式svc:操作系统的特权任务模式。系统复位和软件中断时才进入这个模式中止abt:在ARM7中没多大做用.另外还有未定义und中断(irq),转载 2016-12-25 22:06:07 · 1239 阅读 · 0 评论 -
oled ssd1306 for jz2440(linux i2c driver)
开发板:JZ2440 v2 内核:3.4.2 编译器: arm-linux-gcc 4.3.20.96寸OLED显示屏12864液晶屏模块IIC接口 12864模块是这样的。 oled的地址应该是0x3c,用i2c-tools可以探测到。(之前被误导了) 时序图: 驱动编写:驱动移植自stm32的程序,覆写其中的WriteCmd和Wri...原创 2018-03-07 21:17:56 · 3639 阅读 · 1 评论 -
根文件系统(linuxrc、inittab、fstab)
根文件系统根文件系统是除内核映像文件外,init程序、shell程序、各种程序运行需要的的库等不可缺少文件的集合。 构建根文件系统时,一般遵循FHS标准,详见维基百科 (https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard)。 简单介绍: /bin存放着所有用户可以使用的命令。 /sbin中是系统关键命令。原创 2018-02-03 03:43:31 · 3638 阅读 · 0 评论 -
编写bootloader(一)
BootLoader功能:初始化nandflash,启动内核(转到其入口地址)。BootLoader要求:BootLoader启动内核时还需要传递给内核一些信息(tag),其中有两个必不可少的内存标记和命令行参数,当然还有一个机器ID,BootLoader传递的机器ID必须和内核支持的机器ID匹配。需要知道的信息:1.内核在nandflash中的地址。如果内核是uImage映像文件,跳原创 2016-12-23 16:53:04 · 1365 阅读 · 0 评论 -
2440裸板程序之inline关键字
续之前的内容:2440裸板程序之内存初始化及重定位将点灯程序中wait延时函数声明为inline函数。并修改makefile,将优化等级选成-O1或以上,那么wait函数将被嵌入main函数中。pc指针需要指向的地址也由0x30000038变为0x30000000。 需要修改的内容:1.head.S中55行改为ldr pc,=0x300000原创 2018-01-07 17:46:59 · 1495 阅读 · 0 评论 -
编写bootloader(二)
开发板:JZ2440v2 内核:64M NAND Flash:256M 烧写内核使用到的U-boo及kernelt: http://download.csdn.net/download/qq_33160790/10204086 http://download.csdn.net/download/qq_33160790/10204102bootloader一般分为原创 2018-01-13 18:48:52 · 1745 阅读 · 0 评论 -
移植u-boot-2016.09至Jz2440
开发板:Jz2440v3 编译器:4.5.1 Uboot:u-boot-2016.09.tar.bz2在新版本的uboot中,不再有了mkconfig脚本和board.cfg文件,采用和内核一样的config方式。 在网上找到了一张图,很好的说明了在新版uboot中启动的流程。 在start.S中,添加系统主频,修改分频系数:+++ uboot/arch/ar原创 2018-01-21 23:59:24 · 2019 阅读 · 0 评论 -
2440裸板程序之时钟初始化
LED对应的引脚是GPF4、GPF5、GPF6。 使用的编译器为arm-linux-gcc-4.5.1。 包括四个文件head.S main.c main.lds Makefile。 实验目的:把CPU主频提高到400Mhz。(FCLK:400 HCLK:100 PCLK:50) 2440使用MPLL和UPLL将来自晶振或外部时钟倍频至合适的频率,UPLL输出原创 2018-01-11 20:17:42 · 1658 阅读 · 0 评论 -
2440裸板程序之代码重定位
LED对应的引脚是GPF4、GPF5、GPF6。 使用的编译器为arm-linux-gcc-4.5.1。 包括四个文件head.S main.c main.lds Makefile。 实验目的:将main.c中点灯程序从存放地址0x400重新加载到0x800,并跳到0x800执行。 涉及到地址无关码、伪指令等概念。还有编译器链接脚本中存放地址、运行地址等概念。对于2440,原创 2017-12-26 17:38:54 · 1625 阅读 · 0 评论 -
2440裸板程序之点灯
LED对应的引脚是GPF4、GPF5、GPF6_out。 使用的编译器为arm-linux-gcc-4.5.1。 包括四个文件head.S main.c main.lds Makefile。 head.S.text.global _start_start: ldr r0, =0x53000000 @Close WATCHDOG原创 2017-12-24 22:47:41 · 1755 阅读 · 0 评论 -
2440裸板程序之内存初始化及重定位
LED对应的引脚是GPF4、GPF5、GPF6。 使用的编译器为arm-linux-gcc-4.5.1。 包括四个文件head.S main.c main.lds Makefile。 实验目的:把点灯的程序搬运到内存中执行。2440使用nand启动时,会将nand前4k硬件搬运到内部4ksram中。如果需要运行大型程序的话,还要初始化外部内存原创 2017-12-27 19:48:31 · 1852 阅读 · 0 评论 -
SDRAM中的DQM
按照内存的工作原理划分,可将内存分为RAM和ROM两大类。 RAM(Random Access Memory)存储器又称随机存取存储器,存储的内容可通过指令随机读写访问,RAM中的数据在掉电时会丢失; ROM(Read Only Memory)存储器又称只读存储器,只能从中读取信息而不能任意写信息。ROM具有掉电后数据可保持不变的优点。RAM又分为SRAM和DRAM。SRAM(静态随机存取原创 2017-07-23 01:09:58 · 4976 阅读 · 0 评论 -
Nand Flash基础知识与坏块管理机制的研究
概述Flash名称的由来,Flash的擦除操作是以block块为单位的,与此相对应的是其他很多存储设备,是以bit位为最小读取/写入的单位,Flash是一次性地擦除整个块:在发送一个擦除命令后,一次性地将一个block,常见的块的大小是128KB/256KB,全部擦除为1,也就是里面的内容全部都是0xFF了,由于是一下子就擦除了,相对来说,擦除用的时间很短,可以用一闪而过来形容,所以,转载 2017-07-12 23:46:40 · 1821 阅读 · 0 评论 -
s3c2440时钟分频
如果cpu是计算机的大脑,电流是计算机的血液,那么时钟则是计算机的心脏,时钟频率决定了处理器运算的快慢,它的每一次“跳动”都驱动着处理器不停的执行命令。不同的是,人的各个部位心率是一样的,但计算机却有多个频率,而且每个部位可能有不同的频率,比如“大脑”有一个频率,“手“有一个频率,“脚”使用的是另外一个频率,这样就产生了两个问题:怎么产生这些不同的频率?处理器怎么与自己不同频率的外设实现交互?转载 2016-12-25 22:50:46 · 1889 阅读 · 0 评论