- 博客(7)
- 收藏
- 关注
转载 从Cortex-M3的MSP 和PSP谈Linux能否在中断中使用Sleep
1、Cortex-M3 的PSP和MSP 曾经在STM32上使用过RT thread和uC/OS,对于任务切换代码一直是一知半解,没有自己手动写出来过,对于任务切换后的ORR LR, LR, #0x04; Ensure exception return uses process stack也不是很理解,一次偶然的机会,遇到网上有人问这个问题,才去深入研究一下。Cortex‐M3 拥有两...
2018-03-14 23:39:10 270
转载 #define __IO volatile
STM32例子代码中会有像这样的代码 static __IO uint32_t TimingDelay; 这里边的__IO修饰符不好理解,单从字面可以看出是为IO相关,查其标准库可以得知这个__IO原来是在Core_cm3.h中被重定义,其实就是volatile,句子如下/* IO definitions (access restrictions to peripheral registers...
2018-03-10 13:49:08 2502
转载 __weak 修饰符的作用
前言,在 HAL 库中,很多回调函数前面使用__weak 修饰符。weak 顾名思义是“弱”的意思,所以如果函数名称前面加上__weak 修饰符,我们一般称这个函数为“弱函数”。加上了__weak 修饰符的函数,用户可以在用户文件中重新定义一个同名函数,最终编译器编译的时候,会选择用户定义的函数,如果用户没有重新定义这个函数,那么编译器就会执行__weak 声明的函数,并且编译器不会报错。举个例子...
2018-03-09 19:36:26 343
原创 哈佛结构和冯诺依曼结构
哈佛结构(英语:Harvard architecture)是一种将程序指令储存和数据储存分开的存储器结构。中央处理器首先到程序指令储存器中读取程序指令内容,解码后得到数据地址,再到相应的数据储存器中读取数据,并进行下一步的操作(通常是执行)。程序指令储存和数据储存分开,数据和指令的储存可以同时进行,可以使指令和数据有不同的数据宽度,如Microchip公司的PIC16芯片的程序指令是14位宽度,而...
2018-03-09 18:53:43 166
原创 结构体例子
typedef struct st{ int x; float y; char z;}stu;x,y,z都是变量,三个变量类型不同,各是什么类型你肯定是知道了,这三个都是结构体的成员,struct st就是定义这个结构体,struct就是结构的c语言保留字,stu为自定义类型,就是结构体struct st的别名...
2018-03-09 11:52:32 673
转载 #define RCC ((RCC_TypeDef *) RCC_BASE)
1.这个宏定义是把RCC宏定义到stm32RCC寄存器的分配的存储器单元的首地址上,其中RCC_TypeDef是stm32f10x_map.h中定义的结构体,用来表述RCC所有寄存器构成的2.RCC是RCC_TypeDef *类型的.准确的说,RCC指代表达式((RCC_TypeDef *) RCC_BASE),而这个表达式是在地址RCC_BASE上建立一个RCC_TypeDef的结构体.以后可以...
2018-03-09 10:15:46 898 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人