ARM学习整理
南岭以北
给我一匹马,陪你一起走天涯
展开
-
中断与异常的区别
一、中断:系统停止当前正在运行的程序而转向其他服务,可能是因为优先级高的请求服务了,或者是因为人为安排中断。中断是属于正常现象。 异常:是由于软件错误而引起的二、中断是CPU所具备的功能 – 硬件 异常是软件运行过程中的一种开发过程中没有考虑到的程序错误 – 软件 三、 1.中断的概念 所谓中断是指CPU对系统发生的某个事件作出的一种反应:CPU暂停正在执行的程序,保留转载 2015-07-28 09:11:38 · 2319 阅读 · 0 评论 -
uboot之makefile
VERSION = 1PATCHLEVEL = 1SUBLEVEL = 6EXTRAVERSION =U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)VERSION_FILE = $(obj)include/version_autogenerated.huboot的版本号分3个级别:VERSION:主原创 2017-08-06 09:24:55 · 670 阅读 · 0 评论 -
安装arm-linux-gcc交叉编译工具
使用命令:sudo apt-get install gcc-arm-linux-gnueabihf原创 2017-08-06 07:57:50 · 1060 阅读 · 0 评论 -
s3c2440启动过程详解
转自:http://blog.chinaunix.net/uid-25605754-id-1565119.html一:地址空间的分配1:s3c2440是32位的,所以可以寻址4GB空间,内存(SDRAM)和端口(特殊寄存器),还有ROM都映射到同一个4G空间里.2:开发板上一般都用SDRAM做内存flash(nor、nand)来当做ROM。其中nand flash没有地址线,一次至少要转载 2017-07-29 22:06:43 · 988 阅读 · 0 评论 -
软件看门狗和硬件看门狗
看门狗,又叫watchdog timer,从本质上来说就是一个定时器电路,一般有一个输入和一个输出,其中的输入叫做喂狗,输出一般连接到另外一个部分的复位端,另外一个部分就是所要处理的部分,暂且称之为MCU。 在MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给看门狗电路清零,如果在超过规定的时间不喂狗,WDT定时超时,就会回给一个复位信号到达MCU,使MCU复位,防止MCU死机。总原创 2015-09-11 12:20:55 · 13940 阅读 · 0 评论 -
ucos-ii中os_cpu_a.asm函数解释
1、 对进入临界区和跳出临界区的函数理解#define OS_ENTER_CRITICAL() {cpu_sr = OS_CPU_SRSave();}#define OS_EXIT_CRITICAL() {OS_CPU_SR_Restore(cpu_sr);}OS_CPU_SR_Save MRS R0, PRIMASK原创 2015-08-13 15:45:06 · 2856 阅读 · 0 评论 -
STM32启动文件2.02过程详解
当前的嵌入式应用程序开发过程里,并且C语言成为了绝大部分场合的最佳选择。如此一来main函数似乎成为了理所当然的起点——因为C程序往往从main函数开始执行。但一个经常会被忽略的问题是:微控制器(单片机)上电后,是如何寻找到并执行main函数的呢?很显然微控制器无法从硬件上定位main函数的入口地址,因为使用C语言作为开发语言后,变量/函数的地址便由编译器在编译时自行分配,这样一来main函数的入口转载 2015-07-23 15:49:39 · 682 阅读 · 0 评论 -
C函数与汇编函数之间参数及返回值传递方法
AAPCS对ARM结构的一些标准做了定义,在这里我们只重点介绍函数调用部分,如图8所示,AAPCS为ARM的R0~R15寄存器做了定义,明确了它们在函数中的职责: 图 8 AAPCS关于ARM寄存器的定义一、函数调用时的规则如下: 1、 父函数与子函数间的入口参数依次通过R0~R3这4个寄存器传递。父函数在调用子函数前先将参数存入到R0~R3中,若只有一个参数则使用R0传递,2个则使用R0和R转载 2015-07-22 16:06:10 · 11295 阅读 · 1 评论 -
uC/OS-II中OSUnMapTbl[]的原理
问题描述:ucos任务队列中优先级获取问题解决:uCOS-II是一个多任务的操作系统,每个任务都是一个应用程序,它有自己的寄存器和堆栈空间,即任务控制块TCB(task control block),用来保存任务的状态,具体内容可以看TCB数据结构的定义OS_TCB。所有的任务控制块组成一个单向任务链表OSTCBTbl[],每个任务控制块中有指针指向相邻的控制块,当任务一旦建立,空任务控制块指转载 2015-08-13 17:26:12 · 893 阅读 · 0 评论 -
ucos源码分析之OSMemCreate()
OS_MEM *OSMemCreate (void *addr, INT32U nblks, INT32U blksize, INT8U *err);中有如下语句: OS_MEM *pmem; INT8U *pblk; void **plink; INT32U i; plink = (v转载 2015-08-13 17:57:10 · 469 阅读 · 0 评论 -
汇编文件 .s 和 .S 区别
.s 汇编语言源程序; 操作: 汇编.S汇编语言源程序; 操作: 预处理 + 汇编1.小写的 s文件,在后期阶段不会再进行预处理操作了,所以我们不能在其内写上预处理语句。 一般是 .c 文件经过汇编器处理后的输出。 如 GCC 编译器就可以指定 -S 选项进行输出, 且是经过预处理器处理后 ...转载 2018-09-26 17:10:33 · 3753 阅读 · 0 评论