嵌入式2019-12-10

1

GPIO(通用IO引脚)

总引脚176个    IO引脚144个    

每16个一组  A0-A15   16个    9组

高低电平输出   I O数字控制

GPIO  输出   

钳位防止电压过高 过低    复位 0  置位 1

推挽   加速高低电平切换      实现高低电平的来回切换 控制

开漏    没有高电平   想用高电平必须要用上拉电阻

GPIO 输入

模拟  不是数字信号 

通过施密特 低电平 0.7直接到0    高电平2.4直接到3.3  直接到峰值

出1 或者0   

施密特   防止高阻态 (在高低电平之间)

上拉电阻(产生高电平)

下拉电阻(产生低电平)

浮空(既不是高电平也不是低电平)

复用  其他串口 也可以用GPIO引脚


2

复位信号   32pc程序寄存器  (类似数组)硬件交互  pc之间交互数据

1 预处理    {  .h->.C  .h都变成.c文件

                    宏展开   别名替换    枚举替换}

2 编译  .c->.s(汇编语言) 每一个.c生成一个.s文件

3汇编  .s->.o(目标文件) 每一个.s生成一个.o文件

4链接

.o        .exe

.o        .elf  linux

.o        .bin/.hex     keil

可执行文件

交叉编译   简单地说,就是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统

可执行文件    

.bss    可优化   没有被使用的数据O0   O3 优化等级

.date  数据段    全局变量   常量(没有局部变量) 地址  静态变量

.code  代码段   ARM命令类  while  for if 判断类  或者那种循环  命令类


3

flash创建

flash  1Mbyte

栈空间  指向    SRAM首地址

堆空间(malloc)申请     指向SRAM尾地址

SRAM   256kbyte

首地址与尾地址之间叫做堆栈增长区


地址映射   根据地址找到GPIO引脚

AMBA   

高数总线   AHB

标准总线   APB

使能   EN   enable    能

失能    DIS  disable    不能

4

程序编写流程

根据电路图

1打开时钟源

2

外设初始化 

复位 GPIO引脚  

找到H首地址

找到输出

上拉

低速

2

硬件控制

高低电平输出

切换

你可能感兴趣的:(嵌入式2019-12-10)