![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MCU
文章平均质量分 79
Sherlock0755
这个作者很懒,什么都没留下…
展开
-
指令隔离DMB,DSB,ISB
像ARM7TDMI这样经典的ARM处理器会按照程序的顺序来执行指令或访问数据。而最新的ARM处理器会对执行指令和访问数据的顺序进行优化。举个例子,ARM v6/v7的处理器会对以下指令顺序进行优化。 LDR r0, [r1] ; 从普通/可Cache的内存中读取,并导致cache未命中STR r2, [r3] ; 写入普通/不可Cache的内存 假设第一条LDR...转载 2020-12-05 11:09:51 · 3358 阅读 · 0 评论 -
uCOS III之优先级位图表
优先级表的作用uCOS III是抢占式内核,默认支持64种不同优先级,优先级数值越小,优先级越高。任务调度时需要知道任务就绪表中的最高优先级, 操作系统管理任务时需要知道哪些优先级被使用了。这些都是通过优先级表来管理的。源码解读2.1 优先级表初始化流程十分简单,就是将优先级表全部清0 void OS_PrioInit (void) { CPU_DATA i; for (i = 0u; i < OS_PRIO_TBL_SIZE; i++) { ..原创 2020-09-30 00:00:51 · 745 阅读 · 0 评论 -
MCU之GPIO输入输出
导读: MCU芯片中GPIO口的驱动方式大的可分为输出和输入两类,小的分可以分为8种。一、四种输入方式①上拉输入:上拉输入抗干扰能力强,特别适合接地信号的输入(比如低电平有效的按键信号输入)。其工作原理如图1所示。**图1、上拉输入模式**I/O 端口与TTL 施密特触发器之前接入了一个30K~50K 欧姆的上拉电阻,当I/O 端口悬空时,此时MCU 也能读到稳定的高电平状态,提高了噪声容限。②下拉输入:下拉输入模式适合有效信号为高电平值的信号接入(比如高电平有效的按键信号输入.转载 2020-09-28 22:09:13 · 2997 阅读 · 0 评论 -
MCU之按键驱动 -剥离按键驱动和事件处理
ButtonDrive 自己写的一个按键驱动,支持单双击、连按、长按;采用回调处理按键事件(自定义消抖时间),使用只需3步,创建按键,按键事件与回调处理函数链接映射,周期检查按键。 源码地址:https://github.com/jiejieTop/ButtonDrive 前言 ...转载 2020-09-28 22:03:13 · 680 阅读 · 0 评论 -
MCU之FLASH模拟EEPROM
原始文件ST 官方有例子和文档:AN2594 http://www.st.com/mcu/familiesdocs-110.html 看到不少网上使用官方例子程序不成功的问题,我估计大概是没详细阅读官方文档的原因吧,也许很多人没理 解官方例子的原理。那么下面就详细说明一下原理再说如何优化。 原理如下: 首先使用2 页FLASH 空间,如果0 页空间写满数据,那么把0 页空间里面的【有效数据】复制到1 页,如...转载 2020-09-28 21:42:00 · 1684 阅读 · 0 评论 -
MCU之IAP升级
IAP升级简介IAP是In Application Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级IAP升级流程 4. IAP升级要点...原创 2020-09-28 21:07:51 · 1183 阅读 · 0 评论 -
ARM C语言编程优化策略
ARM C语言编程优化策略(KEIL平台)王小军Stay Simple, Stay Naive.关注他95 人赞同了该文章ARM C语言编程优化策略1. 内容介绍2. 优化实战2.1. 编译器优化选项2.2. C循环优化2.3. 内联函数2.4. volatile 关键字的使用2.5. 纯净函数2.6. 数据对齐特性2.7. C99 中易用的特性2.8. C对栈和寄存器的使用2.9. 阻止未初始化变量初始为03. 编译器特性3.1. 关键字3.2. __declspec 属性3.3. __attribut转载 2020-09-27 00:24:04 · 1076 阅读 · 0 评论 -
stm32半主机模式
在keil中编程时常会遇到__use_no_semihosting_swi的警告,这时你就是进入了半主机模式。 在嵌入式的编程中你是避免不了使用printf、fopen、fclose等函数的但是因为嵌入式的程序中并没有对这些函数的底层实现,使得设备运行时会进入软件中断BAEB处,这...转载 2020-09-26 23:51:43 · 463 阅读 · 0 评论