裸板
文章平均质量分 94
陈伙子
生命应有所坚持,生存当随遇而安
展开
-
自己写个一简单的bootloader
步骤:1、关看门狗2、设置栈,调用C函数进行其他初始化,但从定位代码前的代码,必须保证位置无关性。3、初始化时钟4、初始化存储控制器,以使用SDRAM5、设置存储控制器后,SDRAM可用了,重新设置栈指向SDRAM最高处。6、初始化串口7、初始化nand flash8、重定位代码9、清楚bss段 //参考uboot源码 //步骤123456789都可以原创 2018-01-14 21:06:44 · 1396 阅读 · 0 评论 -
s3c2440裸板实现播放音乐
之前已经写了一篇文章《3线接口与wm8976声卡驱动》,但那不是裸板驱动,只是修改了声卡uda1314的硬件部分的代码,移植过来的,需要在内核下其他模块的支持,才把wm8976用起来了。为了更深入的理解声卡的工作过程,这次不止写了wm8976的裸板驱动,还有IIS和DMA的编程,并利用它们一起来实现裸板播放音乐的功能。也是说把存储在nand flash上的一首歌(.wav格式...原创 2018-07-30 16:03:59 · 1323 阅读 · 0 评论 -
s3c2440 IIC控制器裸板程序
I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。要点:1、总线空闲:I2C总线空闲的时候,两条线SDA和SCL都是高电平。2、开始信号 S 信号:SCL 为高电平时,SDA由高电平向低电平跳变,开始传送数据。3、结束信号 P 信号:SCL 为高电平时,SDA由低电平向高电平跳变,结束传送数据。4、响应信号 ACK:接收器在接收到8位数据后,在第9个时钟周期,...原创 2018-06-13 00:25:17 · 662 阅读 · 1 评论 -
arm工作模式——异常和中断使用方法
Arm920T寄存器简单介绍:R1-R15:通用寄存器R13:栈指针寄存器R14:程序连接寄存器,当执行BL子程序调用指令时,R14中得到R15(程序计数寄存器pc)的备份,而当 发生中断或异常时,对应的R14_svc、R14_irq等保存R15返回值。R15:程序计数器pcCPSR:当前程序状态寄存器 (1)T位(1位) Thumb/Arm (原创 2017-11-27 00:05:29 · 4788 阅读 · 0 评论 -
位置无关码、链接地址与加载地址
从Nand Flash 启动CPU的时候,内部硬件自动将Nand Flash 开始的4KB 数据复制到4KB的内部RAM“Steppingstore”(起始地址为0)中,cpu是从pc寄存器指向的地址取指令执行的,pc指向的地址应该存放有对应的指令才能正确执行。刚开始的时候pc寄存器是指向0地址的,CPU从0地址取指令开始执行。 链接地址是我们写Makefile的...原创 2017-11-25 23:38:17 · 3023 阅读 · 0 评论 -
超详细的系统时钟和定时器原理解析
非常详细地介绍了系统时钟FCLK、HCLK、PCLK和定时器timer的原理、设置步骤使用方法。并提供了一个通俗易懂的例程。学习系统时钟和定时器,只要研究通透本文即可。原创 2017-12-01 20:51:51 · 14775 阅读 · 2 评论 -
UART协议与其基于控制器的裸板驱动(非常简单)
uart协议:1、平时数据处于“空闲”状态(1状态)。2、当要发送数据时,UART改变TxD数据线的状态(变为0状态)并维持1位的时间,这样接收方检测到 开始位之后,再等待1.5位的时间就开始一位一位地检测数据线 的状态得到所传输的数据。3、UART一帧中可以有5 6 7 或8位的收据,发送方一位一位的改变数据线的状态将他们发送出去,首先发送最低位。4、如果使用校验功能,UART在发送...原创 2017-12-06 11:57:08 · 2693 阅读 · 0 评论 -
L3接口介绍及UDA1341声卡测试
mini2440内部集成了IIS控制单元(源码中配置了几个寄存器,使5个脚用于IIS).对外引出了五个引脚:CDCLK : 为编解码芯片提供系统同步时钟(芯片工作时钟)I2SSCLK: IIS控制器提供的串行时钟信号I2SLRCK: 声道控制信号,当为低电平时是左声道,为高电平是右声道I2SDI : 数据输入信号I2SDO : 数据输出信号mini2440 UDA134原创 2018-01-08 18:06:15 · 1605 阅读 · 0 评论 -
3线接口与wm8976声卡驱动
JZ2440使用WM9876声卡,其硬件原理图: 其控制接口有2线和3线模式,有MODE管脚决定,高电平为3线模式,低电平为2线模式,我们这里MODE接高电平,使用3线接口模式。 3线接口不是L3接口,但与L3接口相似,s3c2410-uda1341.c已经有了L3接口的操作,但没有3线接口的操作,我们把L3接口的操作修改一下支持3线接口,用3线接口接到的那三个GPIO来...原创 2018-01-08 22:58:09 · 3980 阅读 · 0 评论 -
GPIO模拟SPI驱动OLED
这个裸板驱动的流程:1、配置与OLED连接的引脚为输入或输出引脚,并设置有关引脚的默认或初始状态。2、根据spi时序,实现主机SPISendByte()函数,以便配置OLED或向其发送数据时调用。3、实现OLED 操作集,包括选择芯片,设置数据/命令模式,地址模式等函数。4、实现OLED的初始化函数 OLEDInit()和功能函数 OLEDPutChar(int page, int col...原创 2018-08-03 23:04:51 · 6351 阅读 · 0 评论