嵌入式linux学习笔记
文章平均质量分 81
weixin_42719028
这个作者很懒,什么都没留下…
展开
-
嵌入式linux学习笔记1-19 I2C
1.硬件连接 I2C仅需两根线就可以支持一主多从或者多主连接,I2C使用两个双向开漏线,配合上拉电阻进行连接。由于需要的硬件简单,所以即使没有I2C控制芯片,只需要控制两个GPIO口也能达到类似I2C的传输效果。2.I2C通信协议 下图黑色是主设备发给从设备的信号,红色是从设备发给主设备的信号。主设备发送一个start信号。 主设备发送一个8位数据,前7位是设备地址(由于一主多从需要通过设备地址来区分设备),最后一位代表方向,0代表写,1代表读。 第9...原创 2021-11-18 22:39:02 · 844 阅读 · 0 评论 -
linux驱动入口函数module_init如何被调用
linux驱动入口函数module_init如何被调用 - 简书转载 2021-09-24 15:09:45 · 158 阅读 · 0 评论 -
嵌入式linux学习笔记 1-11 LCD
1. LCD硬件原理 屏幕上每个像素是由电子枪一边移动一边发出颜色的,每当来了一个pixel clock就移动一个像素。颜色是通过RGB三组线确定。当接收到HSYNC脉冲电子枪知道这行像素已经解决,跳到下一行。当接收到VSYNC脉冲,电子枪知道所有的像素都搞定了,重新回到原点。这是一个关于LCD显示屏原理的gif图https://images0.cnblogs.com/blog2015/268182/201508/261557535783549.gif更多更详细的原理参考这篇...原创 2021-08-27 15:03:57 · 208 阅读 · 0 评论 -
嵌入式Linux学习笔记 1-16 Nand Flash
1. 前言NAND FLASH是一个存储芯片那么: 这样的操作很合理"读地址A的数据,把数据B写到地址A"问1. 原理图上NAND FLASH和S3C2440之间只有数据线,怎么传输地址?答1.在DATA0~DATA7上既传输数据,又传输地址 当ALE为高电平时传输的是地址,问2. 从NAND FLASH芯片手册可知,要操作NAND FLASH需要先发出命令 怎么传入命令?答2.在DATA0~DATA7上既传输数据,又传输地址,也传输命令 当ALE(addr...原创 2021-08-24 14:21:04 · 470 阅读 · 0 评论 -
嵌入式linux学习笔记 1-15 Nor FLash原理即硬件操作
1. NorFlash与NandFlash的特点 Nor Flash Nand Flash 接口 RAM-like, 引脚少,复用,数据线上传输命令、地址、数据 容量 小 大 读 简单,像内存一样读 复杂 写 发出特定命令(慢) 发出特定指令(快) 价格 贵(无位反转,坏块) 便宜(但是会位反转有坏块) XIP (execute in place) 在芯片上直接运行原创 2021-08-21 19:44:10 · 416 阅读 · 0 评论 -
嵌入式linux学习笔记 1.5-1 u-boot分析与使用
目录1.编译配置过程2. U-boot功能3.Makefile结构分析4.U-boot源码分析1.编译配置过程1. 解压缩《u-boot-1.1.6.tar.bz2》tar -xvf u-boot-1.1.6.tar.bz22. 打补丁:patch -p1 < ../u-boot-1.1.6_jz2440.patchpatch -p0 file1(想被打的文件) < test.patch(补丁)-p1:忽略补丁文件中的第一个“/”之前的参数即原创 2021-08-11 19:26:47 · 159 阅读 · 0 评论 -
嵌入式Linux学习笔记 1-14 异常与中断
1. 异常与中断的概念引入与处理流程上图解释了何为中断何为异常,其中中断也是属于一种异常。引申拓展为ARM对异常(中断)的处理过程:1)初始化(1)设置中断源,让他可以产生中断。如某个按键可以产生中断的话,我们可以设置他的gpio引脚为中断引脚(2)设置中断控制器(屏蔽,优先级),屏蔽的话就是在要使用的时候打开,优先级是同时有多个中断,我们先去处理那一个(3)设置CPU总开关(使能中断)2)执行正常程序3)有中断产生。如按键按下---->中断控制器----->...原创 2021-08-10 14:17:45 · 270 阅读 · 0 评论 -
嵌入式Linux学习笔记 1-13 代码重定位
引入:2440芯片通过内存控制器直接与NorFlash、SRAM、SDRAM相连接,但是NandFlash与内存控制器非直接连接,当中还需要一个NandFlash控制器且NandFlash连地址线都没有,但是即使这样为何我们可以设置NandFlash启动? 这是因为,当NandFLash中的代码<4K(SRAM的大小)时,会将4K的数据直接写入SRAM,然后CPU从0地址开始运行,0地址对应的SRAM。当NandFLash中的代码>4K时,会借SRAM为载体,把程序复制到SDR...原创 2021-08-03 16:48:33 · 330 阅读 · 0 评论 -
嵌入式linux学习笔记 1-12 内存控制器与SDRAM
引入:CPU通过访问内存地址查看或修改各种寄存器,从而控制各个引脚接口的输入输出。CPU和各个寄存器之间还有一个控制单元叫内存控制器。内存控制器会根据地址选择不同的模块 ,并把数据发给这个模块或从这个模块中得到数据返回给CPU(会有引脚LnOE/LnWE确定数据的传输方向,是CPU==>外设 or CPU<==外设)。内存模块通过片选引脚(GCS chip select)与内存控制器相接,内存控制器读CPU发出的指令的地址,根据不同的地址发送不同的片选信号(GCSn), 只要...原创 2021-07-29 19:18:19 · 212 阅读 · 0 评论 -
嵌入式linux学习笔记 1-11 串口UART
1. UART初始化,配置寄存器(1)配置引脚,将GPIO口配置为TX或是RX。(2)配置TX、RX引脚为上拉使能 为了使没有数据传输时,时钟保持高电平。(3)设置波特率(4)设置数据格式2.收发数据发送数据:以字节为单位,内存中的数据先被存入寄存器,然后再通过UART发送。再通过查看UART状态寄存器,查看发送buffer中是否为空(当发送完成后,buffer会被清空),若空则可发送下一组数据。接收数据:以字节为单位,读寄存器。...转载 2021-07-28 09:38:56 · 130 阅读 · 0 评论 -
嵌入式linux学习笔记 1-10 ARM芯片时钟体系
控制系统时钟的原理如下图所示,MPLL(main PLL)为锁相环,通过配置MPLLCON来控制FCLK(即CPU的时钟),由于HCLK = FCLK/HDIV , PCLK = PCLK/PDIV, 所以可以通过配置CLKDIVN来控制HDIV和PDIV,从而控制HCLK和PCLK。 另外CLKDIVN的HDIVN位非零时,CPU需要通过一些汇编指令配置为异步模式。...原创 2021-07-23 13:50:40 · 78 阅读 · 0 评论 -
嵌入式Linux学习笔记 1-9 gcc
1. 一个C文件需要通过步骤变成一个可执行文件的? 要通过预处理、编译、汇编、连接这四步。预处理: 处理包含“#”的那些命令。如“#include”、“define”宏定义展开、“ifdef”条件编译 等。最后输出到一个“.i”文件中等待进一步处理。file.c==>file.i 编译:把C代码翻译成汇编代码。file.i==>file.s 汇编:把汇编代码翻译成符合一定格式(ELF)的机器码。file.s==>fi...原创 2021-07-22 20:26:22 · 210 阅读 · 0 评论 -
嵌入式linux学习笔记1-8 第1个ARM裸板程序及引申
第一期第008课_第1个ARM裸板程序及引申1.程序计数器(program counter)= 当前指令 + 8,因为ARM内核为了使运行效率更高,在执行当前指令时,已经在解析当前指令地址+4的指令,同时在读取当前指令地址+8的指令。 所以地址为0 的指令意为 r1= [pc+20]=[0+8+20]=[0x1C]=0x560000502....原创 2021-07-20 19:55:19 · 142 阅读 · 0 评论