嵌入式编程
一剑平江湖
一个对IT行业有着高度热情的工作者。
展开
-
什么是GPIO
<br />一、什么是GPIO? GPIO,英文全称为General-Purpose IO ports,也就是通用IO口。嵌入式系统中常常有数量众多,但是结构却比较简单的外部设备/电路,对这些设备/电路有的需要CPU为之提供控制手段,有的则需要被CPU用作输入信号。而且,许多这样的设备/电路只要求一位,即只要有开/关两种状态就够了,比如灯亮与灭。对这些设备/电路的控制,使用传统的串行口或并行口都不合适。所以在微控制器芯片上一般都会提供一个“通用可编程IO接口”,即GPIO。接口至少有两个寄存器,即“通用IO原创 2011-04-08 17:44:00 · 1023 阅读 · 0 评论 -
ARM的存储器映射与存储器重映射【转载】2009-12-14 10:29最近在用LPC2148,看到了一篇文章,感觉很有帮助,就转了过来。
ARM的存储器映射与存储器重映射【转载】2009-12-14 10:29最近在用LPC2148,看到了一篇文章,感觉很有帮助,就转了过来。arm处理器本身所产生的地址为虚拟地址,每一个arm芯片内都有存储器,而这个芯片内的存储器的地址为物理地址。我们写程序的目的是为了利用芯片内的存储器,因此我们要知道存储器的地址,即物理地址,所以虚拟地址和物理地址之间必然存在一定的转换关系,这就是映射。把虚拟地址按照某种规则转换成物理地址的方法就为存储器映射。物理地址表示了被访问的存储器的位置。存储器映射有两种映射规则原创 2011-04-12 17:32:00 · 1086 阅读 · 0 评论 -
ARM/THUMB汇编(补丁开发类)基础教程
<br />一、汇编基础<br />(1)、ARM与THUMB<br /> 汇编是与C语言挂钩的,没有C语言基础,很难学汇编。索尼爱立信的固件主要用的是THUMB指令,当然还有小部分是ARM指令。如何区分THUMB和ARM指令呢?在IDA中,一段函数反汇编后,机器码最小是2的就是THUMB指令,机器码最小是4的就是ARM指令,ARM在IDA中表示为CODE32,THUMB在IDA中表示为CODE16。当我们确定好该函数是ARM还是THUMB,就可以开始反了。(以下反汇编都是随便从某个地址中开始反,因为这样原创 2011-04-12 11:45:00 · 2546 阅读 · 0 评论 -
简单的启动代码 IMPORT |Image$$RO$$Limit|
<br />简单的启动代码<br />IMPORT |Image$$RO$$Limit|<br /> IMPORT |Image$$RW$$Base|<br /> IMPORT |Image$$ZI$$Base|<br /> IMPORT |Image$$ZI$$Limit|<br /><br /> IMPORT Main ; 声明C程序中的Main()函数<br /><br /> AREA Start,CODE,READONLY ;声明代码段Start<br /> ENTRY ; 标识程序入口<br />原创 2011-04-10 13:38:00 · 1653 阅读 · 0 评论 -
什么是晶振
<br />可简单理解为晶体振荡器。晶振周期为产生一个高电平与一个低电平的间隔。原创 2011-04-09 11:18:00 · 1130 阅读 · 0 评论 -
大端模式和小端模式
<br /><br />大端模式和小端模式 (转载)大端模式和小端模式<br />大端格式:<br />在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,如图2.1所示: <br /><br />小端格式:<br />与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。如图2.2所示:<br /><br /> 请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1<br />解答: <原创 2011-04-10 13:50:00 · 764 阅读 · 0 评论 -
C/C++中Static的作用详述 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。
<br />C/C++中Static的作用详述在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。<br />(1)先来介绍它的第一条也是最重要的一条:隐藏。<br />当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。<br />下面是a.c的内容<br />char a = 'A'; // global variable<br />void msg()<br原创 2011-04-10 13:44:00 · 960 阅读 · 0 评论 -
16道嵌入式C语言面试题(经典) 预处理器(Preprocessor)
<br />16道嵌入式C语言面试题(经典) <br />预处理器(Preprocessor)<br /><br />1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)<br /><br />#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL <br />我在这想看到几件事情: <br />1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) <br />2). 懂得预处理器将为你计算常数表达式的值,原创 2011-04-10 13:43:00 · 852 阅读 · 0 评论 -
code ro rw zi 编译的一个ARM的程序,编译结果中的一句话
<br />code ro rw zi <br />编译的一个ARM的程序,编译结果中的一句话<br />Program Size: Code=8044 RO-data=52 RW-data=56 ZI-data=5184<br />其中:<br />Code指存储到flash【Rom】中的程序代码,代码被系统添加了一部分初始化ZI的代码,编程者看不到这部分。<br />ZI英语是zero initial,就是程序中用到的,并且被系统初始化为0的变量的字节数,keil编译器默认是把你没有初始化的变量都赋值一原创 2011-04-10 13:36:00 · 675 阅读 · 0 评论 -
RO段、RW段和ZI段 转载:RO段、RW段和ZI段
<br />RO段、RW段和ZI段转载:RO段、RW段和ZI段2009-04-02 15:23原帖地址Posted by gavinkwoe<br />一直以来对于ARM体系中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该有不少人也有和我同样的困惑,因此将我的一些关于RO,RW和ZI的理解写出来,希望能对大家有所帮助。要了解RO,RW和ZI需要首先了解以下知识:<br />ARM程序的组成<br />此处所说的“原创 2011-04-10 13:34:00 · 517 阅读 · 0 评论 -
嵌入式编程知识
<br />LED_PIN的定义是:<br /><br />#define LED_PIN GPIO_PORTA_BASE , GPIO_PIN_3<br /><br />GPIOPinWrite(LED_PIN , 1 << 3);是表示,设置PA3引脚输出高电平,如果要使它输出低电平则:<br />GPIOPinWrite(LED_PIN , 0 << 3);<br /><br />其实“0 << 3”还是0,只是为了更好理解,写成下面的形式也可以:<br />GPIOP原创 2011-04-10 13:28:00 · 721 阅读 · 0 评论 -
LM3S1138驱动函数SysCtlPeripheralEnable解析
标签: 函数 解析 驱动 2010-06-10 14:46<br />1、 引言<br />在LM3S1138的使用过程中,如果要使用外设,如本文所述的GPIO_A端口时,就得先使能此外设在RCGCx寄存器中的对应位。至于为什么使用外设时要打开其相应的RCGCx寄存器中的对应位,此处先不讲,我也先不懂。<br />LM3S系列芯片因为自带了丰富的驱动库程序,所以编程变得方便了很多。但对于我一个入门级选手来说,我得先懂得其驱动库程序的组织结构,尔后才能把Luminary的驱动库为我所用。转载 2011-04-09 11:35:00 · 2834 阅读 · 0 评论 -
什么是 UART
什么是 UART UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用来与PC进行通信,包括与监控调试器和其它器件,如EEPROM通信。UART通信 UART首先将接收到的并行数据转换成串行数据来传输。消息帧从一个低位起始位开始,后面是7个或8个数据位,一个可用的奇偶位和一个或几个高位停止位。接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。如果选择了奇偶,UART就在数据位后面加上奇偶位。奇偶位可原创 2011-04-09 10:44:00 · 1757 阅读 · 0 评论 -
ARM学习笔记
ARM学习笔记<br /><br />学习ARM也有一定时间了,想想还是记点东西,要不以后就忘了.这是我的第一片,简简单单.但比较基础.<br />1. ARM中一些常见英文缩写解释<br />MSB:最高有效位;<br />LSB:最低有效位;<br />AHB:先进的高性能总线;<br />VPB:连接片内外设功能的VLSI外设总线;<br />EMC:外部存储器控制器;<br />MAM:存储器加速模块;<br />VIC:向量中断控制器;<br />SPI:全双工串行接口;<br />CAN原创 2011-04-13 09:15:00 · 652 阅读 · 0 评论