摘要: 中断处理的全过程分为中断检测、中断响应和中断处理3个阶段。 1.中断检测 中断检测在每条指令结束时进行,检测是否有中断请求或是满足异常条件。 2.中断响应 中断响应是由处理器内部硬件完成的中断序列,而不是由程序执行的。在Intel 80x86中,中断响应过程的操作如下: ●对可屏蔽中断,从8259中 阅读全文
posted @ 2021-03-07 11:08 昆山皮皮虾 阅读(3390) 评论(0) 推荐(0)
摘要: 使用动态内存管理的时候 FreeRTOS 内核在创建任务、队列、信号量的时候会动态的申请RAM。 标准 C 库中的 malloc()和 free()也可以实现动态内存管理,但是如下原因限制了其使用: ● 在小型的嵌入式系统中效率不高。● 会占用很多的代码空间。● 它们不是线程安全的。● 具有不确定性 阅读全文
posted @ 2021-03-04 03:22 昆山皮皮虾 阅读(1172) 评论(0) 推荐(0)
摘要: 阻塞 如果一个任务当前正在等待某个外部事件的话就说它处于阻塞态, 比如说如果某个任务调用了函数 vTaskDelay()的话就会进入阻塞态, 直到延时周期完成。任务在等待队列、信号量、事件组、通知或互斥信号量的时候也会进入阻塞态。任务进入阻塞态会有一个超时时间,当超过这个超时时间任务就会退出阻塞态, 阅读全文
posted @ 2021-03-04 00:36 昆山皮皮虾 阅读(1344) 评论(0) 推荐(0)
摘要: UART1中断 1 extern SemaphoreHandle_t BinarySemaphore; //二值信号量句柄 2 void USART1_IRQHandler(void) //串口 1 中断服务程序 3 { 4 u8 Res; 5 BaseType_t xHigherPriorityT 阅读全文
posted @ 2021-03-03 05:33 昆山皮皮虾 阅读(486) 评论(0) 推荐(0)
摘要: uart_init() 1 void uart_init(u32 bound) 2 { 3 //GPIO 端口设置 4 GPIO_InitTypeDef GPIO_InitStructure; 5 USART_InitTypeDef USART_InitStructure; 6 NVIC_InitT 阅读全文
posted @ 2021-03-03 01:54 昆山皮皮虾 阅读(772) 评论(0) 推荐(0)
摘要: 一、LDR、LDRB、LDRH、STR、STRB、STRH https://blog.csdn.net/zhangj95/article/details/80984815 阅读全文
posted @ 2021-02-13 20:22 昆山皮皮虾 阅读(59) 评论(0) 推荐(0)
摘要: 恩智浦官方SDK中的裸机I2C驱动中所有函数列出如下,共计32个,其中主机相关函数17个,从机相关函数12个,剩余3个为使能和失能interrupt和I2C block(I2C_Enable实际也有失能I2C block的功能)。 1.I2C_DisableInterrupts 如下,我认为改写版本 阅读全文
posted @ 2021-01-20 20:11 昆山皮皮虾 阅读(498) 评论(0) 推荐(0)
摘要: 尽量保持原文,但为了让摘要更简洁,个人做了小小的更改。 1.10-bit addressing allows 1024 additional slave addresses. 2.The High-speed mode allows an increase in the bit rate up to 阅读全文
posted @ 2021-01-19 08:53 昆山皮皮虾 阅读(370) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2021-01-18 16:40 昆山皮皮虾 阅读(46) 评论(0) 推荐(0)
摘要: 源码如下。 个人总结: 1.I2DR寄存器的读 I2DR寄存器的读操作如下,它与while(size--)中的size无联系,让我一开始觉得I2DR里面的数据就是不变的嘛! *buf++ = base->I2DR;//I2C读数据 后来我查看了I.MX6ULL里面这样描述I2C的I2DR寄存器:“r 阅读全文
posted @ 2021-01-18 05:50 昆山皮皮虾 阅读(263) 评论(0) 推荐(0)