arm c语言开发环境搭建,利用proteus学习ARM(LPC2103)之二:熟悉IAR C语言开发环境...
1. 关于C语言中数据类型的长度问题
我们应该比较熟悉51系列的C语言数据类型的长度,如下表所示:本文引用地址:http://www.eepw.com.cn/article/201611/321519.htm数据类型长 度值 域
unsigned char单字节0~255
signed char单字节-128~+127
unsigned int双字节0~65535
signed int双字节-32768~+32767
unsigned long四字节0~4294967295
signed long四字节-2147483648~+2147483647
float四字节
关于ARM的C语言数据类型的长度,如下表:类型数据宽度/bytes
char1
unsigned char1
short2
unsigned short2
int4
unsigned int4
long4
unsigned long4
2. 关于位变量的定义
第一:如果只单纯的使用位变量,只需要添加#include,然后就可以使用bool进行定义;
第二:但是上面的这种方法有一种不可取的地方,如果需要对很多位变量同时赋同一个值的时候,需要书写多条语句,这个时候就可以使用下面的这种方法,这里支持32bit,16 bit,8bit同时定义。
volatile union { INT8U Flag; __BITS8 Flag_bit; } ;
#define FlagBit0 Flag_bit.no0
#define FlagBit1 Flag_bit.no1
#define FlagBit2 Flag_bit.no2
#define FlagBit3 Flag_bit.no3
#define FlagBit4 Flag_bit.no4
#define FlagBit5 Flag_bit.no5
#define FlagBit6 Flag_bit.no6
#define FlagBit7 Flag_bit.no7
第三:对寄存器的位操作举例,在iolpc2103.h的头文件中,你可以发现如下的定义:
typedef struct{
__REG32 MR0INT : 1;
__REG32 MR1INT : 1;
__REG32 MR2INT : 1;
__REG32 MR3INT : 1;
__REG32 CR0INT : 1;
__REG32 CR1INT : 1;
__REG32 CR2INT : 1;
__REG32 :25;
} __ir0_bits;
__IO_REG32_BIT(T0IR, 0xE0004000,__READ_WRITE,__ir0_bits);
由上面的定义,可以看出寄存器的位操作可以这样写T0IR_bit.MR0INT,同时我们也可以再次重新定义一下这个位变量,这样更利于我们的使用。
#define ClrMR0Timer0Int() T0IR_bit.MR0INT = 1
3. 关于开关总中断的内部函数
在IAR中,关总中断和开总中断,有专用的函数可以调用,只是需要包含#include就可以直接调用下面的语句:
__disable_interrupt();
__enable_interrupt();
4. 关于IAR中头文件的写法
在IAR原来的版本中,包含iolpc2103.h 文件可以这样写:
#include
但是我所使用的这个最新的版本V6.1,却不能这么写,这样会找不到这个头文件,这个版本需要按照下面的这种方法写(当然应该你人为改变iolpc2103.h 文件文件的位置也是可以的):
#include
另如果需要将自己的头文件都放入一个固定的文件夹中,便于管理的话,你需要将你自己定义的头文件写成下面这个样子:
#include"..Headconfig.h"
arm c语言开发环境搭建,利用proteus学习ARM(LPC2103)之二:熟悉IAR C语言开发环境...相关推荐
- c语言中 flag.bit7,利用proteus学习ARM(LPC2103)之二:熟悉IAR C语言开发环境
1. 关于C语言中数据类型的长度问题 我们应该比较熟悉51系列的C语言数据类型的长度,如下表所示: 数据类型 长 度 值 域 unsigned char 单字节 0-255 signed char 单 ...
- fs2410开发板搭建网站服务器,学习 ARM 系列 -- FS2410 开发板上 Nand Flash 到内存的代码搬移...
一.目的 前面做过一个实验,搬移 Nand Flash 里的前 4k 代码到内存指定位置,这其实是把 SRAM 从 0x40000000 开始的 4K 代码复制到 SDRAM 的指定位置,并没有涉及到 ...
- Hi3861开发环境搭建 ||避坑指南|| [适用于几乎所有以Hi3861为主控的开发板]
Hi3861开发环境搭建 ||避坑指南|| [适用于几乎所有以Hi3861为主控的开发板] 前言: 这几天为了搭建Hi3861的开发环境,看了不少官方文档和视频,但是依然折腾了很久才配置好编译.上传都 ...
- 基于Proteus学习单片机系列(二)——驱动数码管
获取更多资源,请关注微信公众号:嵌入式基地 获取项目资源:公众号后台回复:单片机仿真 基于Proteus学习单片机系列(一)--点亮LED 基于Proteus学习单片机系列(二)--驱动数码管 基于P ...
- 嵌入式开发培训怎么样?如何学习arm嵌入式?
我相信很多人都有过这样的经历:刚开始学arm嵌入式的时候,不知道从哪里学起,应该学哪些东西,一般都会在网上搜搜,看到推荐的五花八门的,各种各样的书,看着都感觉压得喘不过来了,更不知道应该要学哪些了,其 ...
- Spring Boot的学习之路(03):基础环境搭建,做好学习前的准备工作
1. 前言 <论语·魏灵公>:"工欲善其事,必先利其器.居是邦也,事其大夫之贤者,友其士之仁者." 工欲善其事必先利其器.我们在熟悉一个陌生项目的时候,首先会大概去看一 ...
- ES6环境搭建及react-router学习
一.起因 ES6新纳入了很多振奋人心的新特性,真的很让人忍不住去尝试一下.不过,由于现在大部分的浏览器对ES6的支持程度都不是很好.所以如果想要放心地使用一些新特性,还需要用一些工具,将ES6或者ES ...
- 无线学习:srsRAN环境搭建【无线学习笔记二】
srsRAN 环境搭建: 文档上的一句话:装上之后找配置文件可以从这里找: By default, all applications will search for confifig fifiles ...
- atom配置python环境_python与excel有段情之二:python的安装和环境配置
索引 python与excel有段情之一:前述 python与excel有段情之二:python的安装和环境配置 python与excel有段情之三:python编程前的准备工作和基本概念 pytho ...
最新文章
- leetcode算法题--二叉树中的列表★
- 线程的切入和切出(切入: 一个线程被系统选中占用处理器开始或继续运行)
- hdu 2074 叠框
- 关于投资银行和咨询的理解和感悟
- 路由器的异步和同步串行接口
- 深度搜索问题c语言,C语言实现的图的深度搜索与广度搜索程序.doc
- java jigsaw_是从Java 8启动的Project Jigsaw吗?
- 全套学习!java排序sort方法
- bzoj千题计划169:bzoj2463: [中山市选2009]谁能赢呢?
- cocos2dx 背景用小尺寸图片滚动填充的方法
- USACO 1.2 Milking Cows (枚举)
- JDBC进行事务管理
- 【华为云技术分享】详解浏览器跨域的几种方法
- 量子计算机时空穿越,科学家用量子计算机模拟时间机器 人类能否回到过去?...
- 《SEO深度解析——全面挖掘搜索引擎优化的核心秘密》
- 「标签管理」用数据管理思维去管理你的日常电子化资料、文件、笔记等
- 单U盘 clonezilla 克隆ubuntu16.04系统
- DDR4原理及硬件设计
- 博达路由器如何配置互联网ip_博达路由器操作命令
- (译)理解ConstraintLayout性能上的好处