摘要: https://blog.51cto.com/iamokay/2426525 阅读全文
posted @ 2021-01-15 11:23 昆山皮皮虾 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 1.join函数 2.addprefix函数(加相同前缀) 3.addsuffix函数(加相同后缀) 4.basename(提取文件名) 5.suffix函数(提取文件后缀) 6.notdir函数(提取指定目录下的文件名) 7.dir函数(提取目录) 8.subst函数(字符串替换) 9.patsu 阅读全文
posted @ 2021-01-10 04:48 昆山皮皮虾 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 由于I2C很重要,应用很广,所以认为有必要将I2C驱动的设计细节给一一“拎出来”,防止自己以后漏掉细节而导致通信失败!以下主要是基于I.MX6ULL的主机I2C驱动来总结的。 1.使用如下8个函数即可实现I2C通信 2.与I2C相关的5个16位寄存器 如下图按照驱动中对I2C寄存器的“动作频率”来排 阅读全文
posted @ 2021-01-09 12:38 昆山皮皮虾 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 基于I.MX6ULL的串口驱动 1.uart驱动 1 #include "bsp_uart.h" 2 #include "bsp_gpio.h" 3 4 5 6 /*初始化UART1,波特率为115200*/ 7 void uart_init(void) 8 { 9 /*初始化UART1的IO*/ 阅读全文
posted @ 2021-01-07 21:46 昆山皮皮虾 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 以下为I2C读写时序的步骤细节: 下图源自AP3216C的手册,列出了如下四种I2C protocol。 根据如下的I2C的读写结构,可以看出来: ①用颜色标记出来的结构(起始信号,从机地址,传输方向,停止信号),均为主机发送。 ②Data和ACK(NACK)可由主机发送,也可由从机发送。 阅读全文
posted @ 2021-01-06 20:25 昆山皮皮虾 阅读(712) 评论(0) 推荐(0) 编辑
摘要: 中断函数框架自己整理了一遍,大致如下,从上到下为函数的调用关系。其中GIC为Cortex-A内核的中断管理机构,全称是general interrupt controller。 1.中断初始化 2.外部中断驱动 阅读全文
posted @ 2021-01-06 03:31 昆山皮皮虾 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 函数对文件夹变量的引用细节: 经过patsubst,foreach函数处理,文件变量如下: Makefile: 从第14行开始,"/*.S"字段非注释,但是变了颜色,忽略颜色变化。 1 CROSS_COMPILE ?= arm-linux-gnueabihf- 2 TARGET ?= key 3 4 阅读全文
posted @ 2021-01-04 11:52 昆山皮皮虾 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 用了辅助性的release变量,不用release,烧写开发板,我的蜂鸣器会出现间歇性的声音,说明还是没有去除抖动。 1 int key_getvalue(void) 2 { 3 int ret = 0; 4 static unsigned char release = 1; /* 按键松开 */ 阅读全文
posted @ 2021-01-04 01:39 昆山皮皮虾 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 1.start.S 完成C语言环境搭建: ①设置处理器运行到SVC模式下 ②初始化 SP 指针 ③跳转到C文件的main函数中。 1 .global _start 2 .global _bss_start 3 _bss_start: 4 .word __bss_start 5 .global _bs 阅读全文
posted @ 2020-12-31 15:02 昆山皮皮虾 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 源码源自原子哥 1.如下为.s汇编源码 1 .global _start @全局标号 2 3 _start: 4 /* 使能所有外设时钟*/ 5 ldr r0, =0x020c4068 @CCGR0 6 ldr r1, =0xffffffff @要向CCGR0写入的数据 7 str r1, [r0] 阅读全文
posted @ 2020-12-30 22:33 昆山皮皮虾 阅读(115) 评论(0) 推荐(0) 编辑