- 博客(5)
- 收藏
- 关注
转载 ARM寄存器中R0~R15寄存器的别名
【原文 ARM寄存器中a1、ip的含义 ARM寄存器的别名】AMR寄存器的别名 + APCSARM中的寄存器的别名默认的情况下,这些寄存器只是叫做r0,r1,...,r14等,而APCS 对其起了不同的别名。使用汇编器预处理器的功能,你可以定义 R0 等名字,但在你修改其他人写的代码的时候,最好还是学习使用 APCS 名字。一般编程过程中,最
2016-05-24 19:39:12 13478 1
转载 Keil的堆设置
【原文 使用Keil的MicroLIB时自动设置堆大小】Keil编译项目,如果使用微库MicroLIB,就可以使用malloc。微库内部位置一个堆管理模块。芯片的RAM大小是固定了的,前面分为全局变量,后面分给堆和栈,这是一般开发方式。但是我们在开发项目的过程中,市场遇到各种各样问题,栈穿透到堆里面,或者堆不够大,相当烦人!有时候就在想,何不让全局变量以外的所有RAM给
2016-05-24 15:40:18 6342 2
转载 深入理解SP、LR和PC
【原文 深入理解SP、LR和PC】深入理解ARM的这三个寄存器,对编程以及操作系统的移植都有很大的裨益。1、堆栈指针r13(SP):每一种异常模式都有其自己独立的r13,它通常指向异常模式所专用的堆栈,也就是说五种异常模式、非异常模式(用户模式和系统模式),都有各自独立的堆栈,用不同的堆栈指针来索引。这样当ARM进入异常模式的时候,程序就可以把一般通用寄存器压入堆栈
2016-05-24 11:05:47 591
转载 keil MDK启动文件分析---基于LPC2100系列
原文【keil MDK启动文件分析---基于LPC2100系列(其实都是相通的)】转用MDK有一段时间了,越来越觉得MDK的强大,因为我之前都是用ADS1.2开发产品,所以更能体会到MDK的强大与易用性。MDK编译出来的代码与ADS1.2相比,代码量减少了很多,我的一个工程用ADS1.2编译为25.4KB(都是bin格式),但用MDK编译出来仅有19.5KB(采用默认优化级别,即L
2016-05-24 10:42:50 1140
转载 堆和栈的区别
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两
2016-05-24 09:50:47 232
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人