编程基础
sunheshan
这个作者很懒,什么都没留下…
展开
-
Cortex-M3中断
1 异常M3支持15个系统异常,240个外部异常IRQ,其中NMI,复位,hardfault三个异常的优先级固定不可更改且是负数,其余的都可编程。M3的异常分为抢占优先级和子优先级。2 关于中断优先级M3中,除了复位,NMI以及硬fault有固定的优先级,其他优先级都是可编程的。原则上,CM3支持3个固定的高优先级和多达256级的可编程优先级,并且支持128级抢占。但是,绝大多数CM3芯片都会精原创 2015-09-18 21:19:14 · 4584 阅读 · 0 评论 -
B , BX, BL, BXL
B,BX,BL,BXLB Label ;跳转到Label处对应的地址BL Label ;跳转到Label对应的地址,并且把跳转前的下条指令地址保存到LR BX reg ;跳转到由寄存器reg给出的地址BLX reg ;跳转到由寄存器reg给出的地址,并根据REG的LSB切换处理器 ;状态还要把原创 2015-09-18 20:57:39 · 3744 阅读 · 0 评论 -
枚举在单片机编程的应用
什么时候需要用到enum呢?当变量的数值在几个范围之间,如一个week变量取值只有Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday。这样用enum比较好.当然也可以用define.但是define维护起来比较麻烦, 适合变量的数值范围值较少的时候.1、用enum关键字说明常量(即说明枚举常量)有以下几点好处:原创 2015-05-06 14:44:23 · 3768 阅读 · 0 评论 -
详解大端模式和小端模式
详解大端模式和小端模式嵌入式开发交流群280352802,欢迎加入!一、大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡转载 2014-05-27 15:36:56 · 651 阅读 · 0 评论 -
图示启动代码
启动代码主要完成1 硬件初始化,最起码的是要初始化堆栈指针。2 C语言环境 在main函数调用之前要完成对一些变量的初始化。3 应用初始化 这主要取决于你的应用。比如设置系统的晶振、时钟。1)程序开始运行,系统启动代码首先要完成硬件初始化,比如说对堆栈的初始化。图中显示初始化堆栈指针为之前预先定义好堆栈区域的末尾。2)初始化变量初始值为原创 2014-03-30 20:29:52 · 828 阅读 · 0 评论 -
ARM的字对齐问题
一、啥是字对齐?为啥要字对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问都可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就是对齐。字节对齐的原因大致是如下两条:1、平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否转载 2014-05-27 15:13:39 · 762 阅读 · 0 评论 -
c语言中static的用法详细示例分析 详细出处参考:http://www.jb51.net/article/40521.htm
static在c里面可以用来修饰变量,也可以用来修饰函数。先看用来修饰变量的时候。变量在c里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不是堆,不要弄混。复制代码 代码如下:int a ;int main(){ int b ; int c* = (int *)malloc(sizeof(int));}a是全转载 2014-05-25 21:29:12 · 1016 阅读 · 0 评论 -
IAR中查看程序运行时间
在IAR5.20中进行仿真时,查看运行时间.设置如下 1 (原文件名:1.jpg) 2 (原文件名:2.jpg) 3 (原文件名:3.jpg) Ctrl+D进入软件仿真后,在主菜单View->Proifing,即可调出分析函数的运行时间。按下图中红圈子的Activate按钮 4 (原文件名:4.jpg) ,同时也转载 2014-05-14 09:43:12 · 13734 阅读 · 3 评论 -
内联函数与宏
内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。编译时,类似宏替换,使用函数体替换调用处的函数名。转载 2014-04-11 09:39:25 · 785 阅读 · 0 评论 -
JTAG与JLINK,H-JTAG
调试ARM,要遵循ARM的调试接口协议,JTAG就是其中的一种。当仿真时,IAR、KEIL、ADS等都有一个公共的调试接口,RDI就是其中的一种, 那么我们如何完成RDI-->ARM调试协议(JTAG)的转换呢? 有以下两种做法: 1. 在电脑上写一个服务程序,把IAR、KEIL和ADS中的RDI命令解析成相关的JTAG协议,然后通后一个物理转换接口(注意,这个转换只是电气物理层上的转换转载 2014-04-01 09:42:46 · 1236 阅读 · 0 评论 -
一个类型转换的讨论
m3一个类型的转换原创 2015-09-19 08:57:59 · 1077 阅读 · 0 评论