1、ARM内部寄存器:设计在CPU内部 (1)特点:速度快 (2)数量:一共有37个: 6个状态寄存器; 31个通用寄存器(R0-R12) R13(SP):栈指针,不同模式下栈空间是不一样的 R14(LR):链接寄存器(存放断点),硬件自动完成 R15(PC):程序指针,取指令的位置 在FIQ模式下 ...
分类:
其他好文 时间:
2020-03-06 15:23:27
阅读次数:
79
1._und(未定义指令异常)介绍 我们之前分析过5种异常,那么如何进入未定义指令异常,当然是cpu读取指令发生异常,出现了指令解析异常。 我们先来看下当cpu解析到什么样的指令才会触发未定义指令异常呢? 从上面的arm指令格式中可知,只要指令码属于划线的格式,就属于未定义指令异常。 2.汇编向c函 ...
分类:
其他好文 时间:
2019-12-29 11:31:55
阅读次数:
101
片内资源 开发板使用的STM32F407ZGT6在手册里是这样的: 片内FLASH:1M,片内RAM:192K,这两个跟程序运行和下载密切相关。 FLASH 地址分配如图,因此FLASH下载地址从 开始,大小为 (1M) RAM RAM的两段需要注意的是只有 开始的112K+16K是可以让外设访问的 ...
分类:
其他好文 时间:
2019-10-14 22:26:09
阅读次数:
144
第十二章 内中断 12.1 内中断的产生 发生情况: 使用中断类型码的数据来标识中断信息的来源。 8086CPU中的中断类型码: 12.2 中断处理程序 12.3 中断向量表 定义:就是中断处理程序入口地址的列表 中断向量表存放着256个中断源所对应的中断处理程序的入口,8086CPU从0000:0 ...
分类:
其他好文 时间:
2019-07-20 00:20:23
阅读次数:
124
1、opendir与readdir函数 (1)、opendir打开一个目录后得到一个DIR类型的的指针给readdir使用。 (2)、readdir函数调用一次后就会返回一个struct dirent类型的指针,这个指针指向一个结构体变量,这个结构体变量里面记录了一个目录项(所谓目录项就是目录中的一 ...
分类:
系统相关 时间:
2019-07-16 18:09:11
阅读次数:
156
1.8086支持中断源类型最多为 A、128 B、256 C、1024 D、65536 答:B 注释: 中断有中断源,中断向量表,中断处理程序。 1.中断源是触发中断处理程序的,比如我们点击键盘,触发外中断,当程序执行时候发现除法问题就会除法除法错误中断。 2.中断向量表是存在一块固定内存的地方,内 ...
分类:
其他好文 时间:
2019-06-06 14:00:07
阅读次数:
117
bootloader部分要点 1. 跳转前需要关闭无关中断,防止APP中未使用该中断, 却因为中断而跳转到中断向量表时找不到对应函数入口 2. bootloader最终生成的固件大小不要超过划定的区域 App部分要点 1. 在Keil设置中要设置对应的flash起始地址与大小, 同时起始地址减去fl ...
分类:
移动开发 时间:
2019-05-12 23:40:00
阅读次数:
357
环境:STM32F103C8T6,MDK5 在最近的一个项目的开发中,每当调用到一个函数,程序就直接跑飞。debug跟进去看不出什么逻辑错误,但发现函数内局部变量声明之后,全局变量的值被清零,后来查看局部变量地址已经超出栈的范围,于是确定是栈溢出。如果不稍微了解一下堆栈,在开发过程中可能碰到各种奇怪 ...
分类:
其他好文 时间:
2019-04-04 13:08:17
阅读次数:
1185
每一个支持多进程(线程)的系统都会有一个滴答时钟(系统时钟),这个时钟就好比系统的“心脏”,线程的休眠(延时)和时间片轮转调度都需要用到它。 Cortex-M系列的内核都有一个systick时钟,这个时钟就是设计用来支持操作系统的,是一个24位的自动重装载向下计数器,中断入口就位于中断向量表里面,定 ...
分类:
其他好文 时间:
2019-01-28 01:13:13
阅读次数:
191
BIOS中断 BIOS中断 实模式下,调用中断采用的是BIOS中断方式。 BIOS中断就不介绍了: "BIOS中断" BIOS中断大全 查询相应的中断API可以根据BIOS中断大全: "BIOS中断大全" BIOS的中断向量表 中断向量表位置 中断向量表位于BIOS的 0x0000 0x03FF 地 ...
分类:
移动开发 时间:
2019-01-05 00:16:20
阅读次数:
230