摘要: 核心问题 当通信中的 I²C 设备(从设备)因为电源中断、系统复位或通信数据错误等原因而“卡住”或进入一种不可预知的状态时,它可能不再响应主控制器(通常是单片机或CPU)的命令。这时,物理上断电再上电(硬件复位)可以解决,但很不方便。 这个“软件复位”流程就是为了在不切断电源的情况下,通过一系列特定 阅读全文
posted @ 2025-09-12 09:19 北溟有渔 阅读(18) 评论(0) 推荐(0)
摘要: emmc、nand flash和nor flash区别参考:存储芯片 emmc、Nand flash、Nor flash之间有什么区别 (eepw.com.cn) 阅读全文
posted @ 2024-10-09 11:29 北溟有渔 阅读(351) 评论(0) 推荐(0)
摘要: nor flash和nand flash 区别具体可以参考:norflash和nandflash的区别_nand flash和nor flash区别-CSDN博客 阅读全文
posted @ 2024-10-09 11:26 北溟有渔 阅读(261) 评论(0) 推荐(0)
摘要: flash:比如:W25Q128JV(128M-bit)介绍:W25Q128JV芯片的数组被组织成65,536个可编程页面,每个页面大小为256字节。每次最多可以编程256字节。页面可以以16个为组进行擦除(4KB扇区擦除)、以128个为组进行擦除(32KB块擦除)、以256个为组进行擦除(64KB 阅读全文
posted @ 2024-07-17 11:07 北溟有渔 阅读(321) 评论(0) 推荐(0)
摘要: 代码来自RThread中的rtservice.h文件 rt_inline void rt_list_init(rt_list_t *l) { l->next = l->prev = l;} /** * @brief insert a node after a list * * @param l li 阅读全文
posted @ 2024-03-17 21:44 北溟有渔 阅读(305) 评论(0) 推荐(0)
摘要: RAW TCP接口tcp_input()函数 void tcp_input(struct pbuf *p, struct netif *inp) >static err_t tcp_process(struct tcp_pcb *pcb) >static void tcp_receive(struc 阅读全文
posted @ 2024-02-29 23:05 北溟有渔 阅读(525) 评论(0) 推荐(0)
摘要: 注:具体参考文档《FreeRTOS实时内核使用指南-中文.PDF》 3.2 延迟中断处理 二值信号量可以在某个特殊的中断发生时,让任务解除阻塞,相当于让任务与中断 同步。这样就可以让中断事件处理量大的工作在同步任务中完成,中断服务例程(ISR) 中只是快速处理少部份工作。如此,中断处理可以说是被”推 阅读全文
posted @ 2024-02-29 22:51 北溟有渔 阅读(469) 评论(0) 推荐(0)
摘要: 在一个结构体或联合体中,编译器会根据具体成员变量的类型选择边界对齐字节,其选择依据是处理器的ABI规范。 c语言处了对结构体或联合体内的变量进行对齐处理外(从结构体内部),还需要将整个数据结构分配在以4字节为边界的地方才有意义。 结构体成员变量对齐规则有三条(参考来自网上)https://blog. 阅读全文
posted @ 2023-12-31 19:21 北溟有渔 阅读(304) 评论(0) 推荐(0)
摘要: 队列 二值信号量 (通常用于互斥访问和任务同步互斥,与互斥信号量类似但二值信号量有可能会导致任务优先级翻转的问题所以二值信号量更适合与任务同步)。 例1:信号量互斥操作 若用于互斥,几个进程(或线程)往往只设置一个信号量 sem,它们的操作流程如下图2-1: 例2:信号量同步操作 当信号量用于同步操 阅读全文
posted @ 2023-12-15 14:07 北溟有渔 阅读(39) 评论(0) 推荐(0)
摘要: 1.栈区(stack): 主要用于存储函数的参数和局部变量。栈区由系统进行内存管理,在函数执行完成时,系统自动释放栈区的内存, 而不需要用户的参与,整个程序的栈区的大小可以在编译器中由用户自行设定。 2.堆区 由用户手动申请,手动释放。 如果用户忘记对所申请的内存资源进行释放,该内存资源可能会在程序 阅读全文
posted @ 2020-06-28 19:39 北溟有渔 阅读(87) 评论(0) 推荐(0)