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语言开发环境...相关推荐

  1. c语言中 flag.bit7,利用proteus学习ARM(LPC2103)之二:熟悉IAR C语言开发环境

    1. 关于C语言中数据类型的长度问题 我们应该比较熟悉51系列的C语言数据类型的长度,如下表所示: 数据类型 长 度 值 域 unsigned char 单字节 0-255 signed char 单 ...

  2. fs2410开发板搭建网站服务器,学习 ARM 系列 -- FS2410 开发板上 Nand Flash 到内存的代码搬移...

    一.目的 前面做过一个实验,搬移 Nand Flash 里的前 4k 代码到内存指定位置,这其实是把 SRAM 从 0x40000000 开始的 4K 代码复制到 SDRAM 的指定位置,并没有涉及到 ...

  3. Hi3861开发环境搭建 ||避坑指南|| [适用于几乎所有以Hi3861为主控的开发板]

    Hi3861开发环境搭建 ||避坑指南|| [适用于几乎所有以Hi3861为主控的开发板] 前言: 这几天为了搭建Hi3861的开发环境,看了不少官方文档和视频,但是依然折腾了很久才配置好编译.上传都 ...

  4. 基于Proteus学习单片机系列(二)——驱动数码管

    获取更多资源,请关注微信公众号:嵌入式基地 获取项目资源:公众号后台回复:单片机仿真 基于Proteus学习单片机系列(一)--点亮LED 基于Proteus学习单片机系列(二)--驱动数码管 基于P ...

  5. 嵌入式开发培训怎么样?如何学习arm嵌入式?

    我相信很多人都有过这样的经历:刚开始学arm嵌入式的时候,不知道从哪里学起,应该学哪些东西,一般都会在网上搜搜,看到推荐的五花八门的,各种各样的书,看着都感觉压得喘不过来了,更不知道应该要学哪些了,其 ...

  6. Spring Boot的学习之路(03):基础环境搭建,做好学习前的准备工作

    1. 前言 <论语·魏灵公>:"工欲善其事,必先利其器.居是邦也,事其大夫之贤者,友其士之仁者." 工欲善其事必先利其器.我们在熟悉一个陌生项目的时候,首先会大概去看一 ...

  7. ES6环境搭建及react-router学习

    一.起因 ES6新纳入了很多振奋人心的新特性,真的很让人忍不住去尝试一下.不过,由于现在大部分的浏览器对ES6的支持程度都不是很好.所以如果想要放心地使用一些新特性,还需要用一些工具,将ES6或者ES ...

  8. 无线学习:srsRAN环境搭建【无线学习笔记二】

    srsRAN 环境搭建: 文档上的一句话:装上之后找配置文件可以从这里找: By default, all applications will search for confifig fifiles ...

  9. atom配置python环境_python与excel有段情之二:python的安装和环境配置

    索引 python与excel有段情之一:前述 python与excel有段情之二:python的安装和环境配置 python与excel有段情之三:python编程前的准备工作和基本概念 pytho ...

最新文章

  1. leetcode算法题--二叉树中的列表★
  2. 线程的切入和切出(切入: 一个线程被系统选中占用处理器开始或继续运行)
  3. hdu 2074 叠框
  4. 关于投资银行和咨询的理解和感悟
  5. 路由器的异步和同步串行接口
  6. 深度搜索问题c语言,C语言实现的图的深度搜索与广度搜索程序.doc
  7. java jigsaw_是从Java 8启动的Project Jigsaw吗?
  8. 全套学习!java排序sort方法
  9. bzoj千题计划169:bzoj2463: [中山市选2009]谁能赢呢?
  10. cocos2dx 背景用小尺寸图片滚动填充的方法
  11. USACO 1.2 Milking Cows (枚举)
  12. JDBC进行事务管理
  13. 【华为云技术分享】详解浏览器跨域的几种方法
  14. 量子计算机时空穿越,科学家用量子计算机模拟时间机器 人类能否回到过去?...
  15. 《SEO深度解析——全面挖掘搜索引擎优化的核心秘密》
  16. 「标签管理」用数据管理思维去管理你的日常电子化资料、文件、笔记等
  17. 单U盘 clonezilla 克隆ubuntu16.04系统
  18. DDR4原理及硬件设计
  19. 博达路由器如何配置互联网ip_博达路由器操作命令
  20. (译)理解ConstraintLayout性能上的好处

热门文章

  1. 用什么打开DWG文件进行查看呢
  2. 用dwg查看器打开dwg文件的步骤
  3. CentOS7防火墙配置
  4. 工业机器人电柜布线_工业机器人控制柜使用方法
  5. android studio profiler 内存分析用法
  6. 老黄历java_老黄历吉日吉时查询接口实现及代码示例
  7. 211非计算机专业如何转行IT?加入超级实习生就行吗?
  8. java socket客户端设计,基于JavaSocket多客户端并发通信聊天程序的设计与实现
  9. Javasocket服务端持久化,持续更新中
  10. oracle删除数据索引失效,oracle数据库索引失效