嵌入式积累
Carrey沏沏
我有点勤快吧
展开
-
STM32的讲解
GPIO general purpose input output 通用的输入输出GPIO的输入输出方式四种输 浮空输入模式上拉输入模式 下拉输入模式. 四种输出模式 四种最大的输出速度IO口为FT的话表示支持5V容忍上电复位后,GPIO口默认为输入浮空状态,部分特殊功能的引脚为特定的状态GPIO端口可以通过程序配置成输入或者输出STM32的引脚中,有部分是做...原创 2019-07-18 11:09:22 · 1071 阅读 · 1 评论 -
启动代码的讲解
启动代码通常烧写在flash上,它是系统一上电就能够执行的一段程序,它运行在任何用户C代码之前,上电后ARM处理器处于ARM态,运行于管理模式,同时系统的所有中断被禁止,PC到地址0处取指令执行,一个可执行映像文件必须有一个入口点,而能够放在ROM起始处的映像文件的入口地址也必须设置为0启动代码主要完成两方面的工作:初始化执行环境 中断向量表 堆栈 I/O接口 初始化C库 和用户的应...原创 2019-07-19 13:38:26 · 3148 阅读 · 0 评论 -
中断向量,中断向量表 ,中断服务函数
所谓中断是指CPU在正常执行程序的过程中,由于内部/外部事件的触发或由程序的预先安排,引起CPU暂时中断当前正在运行的程序,而转去执行为内部/外部事件或程序预先安排的事件的服务子程序,待中断服务子程序执行完毕后,CPU再返回到被暂时中断的程序处(断点)继续执行原来的程序,这一过程成为中断。中断向量:中断的地址的变量;中断向量表:中断类型号与相应中断源的中断处理程序入口地址之间的连接表;...原创 2019-07-29 12:31:52 · 9929 阅读 · 1 评论 -
FreeRTOS任务
系统运行时,全局变量放在哪里?子函数调用时,局部变量放在哪里?中断发生时函数的返回地址放在哪里???栈是单片机RAM中一段连续的内存空间 栈的大小一般在启动文件或者连接脚本中指定,最后由C库函数 __main进行初始化在多任务中每个任务都是独立的互不干扰的,所以每个任务都分配独立的栈空间,这个栈空间通常是一个预先定义好的全局数组,也可以是动态分配的一段内存空间 ,都存在与RAM ...原创 2019-07-29 15:23:03 · 213 阅读 · 1 评论 -
串行和并行
串行传输:串行传输即串行通信,是指使用一条数据线 将数据一位一位地依次传输,每一个数据占据一个固定的时间长度,其只需要少数几条线就可以在系统之间交换信息,特别适合计算机和计算机 计算机和外设之间的远距离通信。并行传输:并行传输指的是数据以成组的方式,在多条并行信道上同时进行传输,是在传输中有多条数据位同时在设备之间进行传输。区别:串行传输的速度比并行传输的速度要慢的多,但是费用低并行传输...原创 2019-07-31 19:21:31 · 2566 阅读 · 0 评论 -
结构体和而联合体的区别
两者最大的区别是内存的使用一 结构体struct各成员各自拥有自己的内存,各自使用互不干扰,同时存在的,遵循内存对齐原则。一个struct变量的总长度等于所有成员的长度之和二 联合体union各成员共用一块内存空间,并且同时只有一个成员可以得到这块内存的使用权(对该内存的读写)各变量共用一个内存的首地址,因此联合体比结构体更节约内存。一个union的总长度至少能容纳最大成...原创 2019-08-14 10:10:36 · 396 阅读 · 4 评论 -
LWIP数据包和网络接口管理
LWIP数据包管理lwip使用pbuf结构体来描述协议栈使用的数据包,pbuf结构体在pbuf.h中的定义struct pbuf{ struct pbuf*next; //指向下一个pbuf结构体,可以构成链表 void *payload; //指向该pbuf真正的数据区 u16_t tot_len; //当前pbuf和链表中后面所有...原创 2019-08-21 09:13:55 · 338 阅读 · 0 评论