
hardware
HeroKern
欢迎关注嵌入式开发公众号,定期更新技术文章。
-
原创 lcd调色板工作原理详解
举例如下:/* * 改变调色板为一种颜色 * 输入参数: * color: 颜色值,格式为0xAARRGGBB /*AA为透明度*/ */ red = (color >> 19) & 0x1f;green = (color >> 10) & 0x3f;blue = (color >> 3) & 0x1f;color = (red2015-12-20 11:30:1216247
0
-
原创 堆和栈详解
堆(heap)和栈(stack)是非常重要的概念,当我们进行程序开发时理解它们非常重要,尤其是对于嵌入式系统开发。比如在嵌入式系统中,任务的栈通常都很小,可能也就几K字节。在这种情况下,我们就应当尽可能不要将占用内存大的变量分配在栈上,而是应当分配在堆上;此外,也尽量不要采用递归的方式来设计程序,否则很容易造成栈溢出。 从本质上说,堆和栈都是内存,那么我们只能从概念上对其进行2015-12-04 13:23:1615936
0
-
原创 给开发板烧写程序的N种方式
空片烧写(flash中没有任何内容时,或误擦除uboot),仅用于烧写bootloader和裸机程序1. 并口Wiggler JTAG调试板 配合HJTAG软件,可以烧写nandflash和norflash,并口速度较慢2. HJTAG USB仿真器 配合HJTAG软件,可以烧写nandflash和norflash,速度极快,适用于没有并口的电脑3. Jlink V8仿真器2015-12-04 09:25:4021811
0
-
转载 linux基础之uboot load address、entry point、 bootm address以及kernel运行地址的意义及联系
按各地址起作用的顺序,uboot引导linux内核启动涉及到以下地址:load address:entry point: 这两个地址是mkimage时指定的bootm address:bootm为uboot的一个命令,以此从address启动kernelkernel运行地址:在具体mach目录中的Makefile.boot中指定,为kernel启动后实际运行的物理地2015-11-29 19:51:5116162
0
-
原创 详解ARM的AMBA设备中的DMA设备(Linux驱动之DMA)
在开始分析代码之前,先简要介绍一下DMA的基础知识。1. 什么是DMADMA,Direct Memory Access,直接内存访问。既然叫 直接内存访问,那么相对应地,应该就有 “间接的内存访问”。间接的内存访问,我的理解是,就是指最常见的,我们利用CPU的指令,去从一个内存地址中读出数据,然后写到另外一个内存地址中,完成对应的赋值操作。此过程,完全都是CPU去操2016-04-28 21:57:046449
0
-
转载 ARM 内核分类
根据ARM官方资料和网上资料整理。先来一张Architecture的图片ARM微处理器系列 ARM 微处理器目前包括下面几个系列,以及其它厂商基于 ARM 体系结构的处理器,除了具有ARM 体系结构的共同特点以外,每一个系列的 ARM 微处理器都有各自的特点和应用领域。 - ARM7 系列 - ARM9 系列 - ARM9E 系列 - ARM10E2016-04-28 21:54:294685
0
-
原创 Linux时钟管理clk_get函数透彻分析
硬件资源越来越庞大和复杂,内核的另一个挑战就是要便捷的管理这些资源。同时,面对如此之多的平台不同的CPU,管理机制需要统一适用,这就需要对资源的管理抽象到更加通用的层次。CPU中各个模块都需要时钟驱动,内核需要一种机制能通用所有的平台,方便的管理CPU上所有的clk资源。这里分析Linux对clk的管理。通常操作为以下几步:1.定义struct clk *clk;2.获2016-04-07 13:55:5014757
0
-
原创 FCLK,HCLK和 PCLK时钟三者之间的关系
FCLK是提供给ARM920T 的时钟。 HCLK 是提供给用于 ARM920T,存储器控制器,中断控制器,LCD 控制器,DMA 和 USB 主机模块的 AHB总线的时钟。 PCLK 是提供给用于外设如WDT,IIS,I2C,PWM 定时器,MMC/SD 接口,ADC,UART,GPIO,RTC 和SPI的 APB 总线的时钟。 S3C2440A还支持对FCLK、2015-11-26 14:10:5730001
0