ARM编译器介绍 U-BOOT是一个LINUX下的工程,在编译之前必须已经安装对应体系结构的交叉编译环境,这里只针对ARM,编译器系列软件为arm-linux-*。U-BOOT的下载地址: http://sourceforge.net/projects/u-boot我下载的是1.1.6版本,一开始在FTP上下载了一个次新版,结果编译失败。1.1.6是没问题的。u-b... 2023-06-13 ARM编译器文章技术应用嵌入式开发
keilC编译器错误与解决方法 最近调好了基于EDNUSB学习板的无线键盘程序,以前KEILC没有怎么好好的学习.调试中遇到很多的问题.下面我自己在网上搜到了一些关于keilC编译器错误与解决方法.做成PDF文档,望大家少走一点弯路:keilc编译器错误与解决方法1.Warning280:’... 2023-06-13 keilC编译器错误解决方法
DSP编程技巧之19---详解cmd文件 cmd文件是编译完成之后链接各个目标文件时,用来指示各个数据、符号等是如何划分到各个段,以及每个段所使用的存储空间的。许多筒子对cmd文件有畏难情绪,不容易理解各个段的含义,特别是在程序编译没有问题,但是在链接生成可执行的.out遇到错误时更容易手足无措,所以我们就来详细... 2023-06-13 DSPCMD编译器编程技巧DSP编程技巧文章单片机
DSP编程技巧之18---不得不看的编译指示 编译指示(Pragma Directives)可能是所有的预处理指令中最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对编译器给出了如何处理特定的函数、对象和代码段的方法,在保持与C/C++语言完全兼容的情况下,给出主机(比如C28x)或操作系统(... 2023-06-13 DSP编译指示编译器DSP编程技巧编程技巧文章单片机
DSP编程技巧之17---非常“关键”的关键字 什么是“关键字”?关键字就是已被C语言本身使用,不能作其它用途使用的字,例如关键字不能用作变量名、函数名等。那“关键字”到底有多关键?简单得说,就是如果不掌握它们的使用方法,程序就不能按照我们的设计产生预期的结果。C28x的编译器支持所有的标准C... 2023-06-13 DSP关键字编译器DSP编程技巧编程技巧文章单片机
HI-TECH PICC 编译器如何生成库文件 在MPLAB IDE环境中是不能够直接生成HI-TECH编译器库文件的。只能通过HI-TECH自带的生成工具在命令行中转换。 HI-TECH编译器生成库文件类型有两种类型p-code库文件和object库文件,后缀名分别为.lpp和.lib。 这两种库文件分别对应C语言和汇编语言编写的模块程序。p-code库... 2023-06-13 HI-TECHPICC编译器库文件文章单片机PIC单片机
深入理解并应用C51 具体说明如下(8031为缺省CPU)。1. 第一节 Keil C51扩展关键字 C51 V4.0版本有以下扩展关键字(共19个):_at_idatasfr16 alien interrupt smallbdata large _task_ Code bit pdata using reentrant xdata compact sbit data sfr2. 第二节 内存区域(M... 2023-06-13 C存储汇编编译器initializationfunction文章单片机51单片机
PICC ME16 C简要说明书 第一部分为了对PIC单片机有更好的支持,PICC在标准C的基础上作了一些扩充:定义I/O函数,以便在你的硬件系统中使用中定义的函数。用C语言编写中断服务程序用C语言编写I/O操作程序C语言与汇编语言间的接口1-1 与标准C的不同 PICC只在一处与标准C不同:函数的重入。因为PIC单片机... 2023-06-13 PICCME16C简要说明书编译器文章单片机PIC单片机
基于ARM7的单片机实现32位系统 随着全球化工业生产的发展与深入,终端产品功能的多样化,8位或8051的工程师在设计工业控制器和模块时,越来越需要复杂的以RISC(精简指令系统)为基础的微处理器。由于有机能源的短缺和全球气候变暖,对电子设备能耗的要求越来越高。意法半导体的STR7系列单片机内置闪存存储器,寄... 2023-06-13 周期C源程序编译器JTAG接口文章单片机ARM
高效的C编程之:寄存器分配(上) 14.7寄存器分配编译器一项很重要的优化功能就是对寄存器的分配。与分配在寄存器中的变量相比,分配到内存的变量访问要慢得多。所以如何将尽可能多的变量分配到寄存器,是编程时应该重点考虑的问题。注意当使用-g或-dubug选项编译程序时,为了确保调试信息的完整性,寄存器分配的... 2023-06-13 C编程寄存器分配变量ARM编译器文章软件开发程序设计
高效的C编程之:寄存器分配(中) 14.7.2指针别名C语言中的指针变量可以给编程带来很大的方便。但使用指针变量时要特别小心,它很可能使程序的执行效率下降。在一个函数中,编译器通常不知道是否有2个或2个以上的指针指向同一个地址对象。所以编译器认为,对任何一个指针的写入都将会影响从任何其他指针的读出,... 2023-06-13 C编程寄存器分配变量ARM编译器文章软件开发程序设计
高效的C编程之:寄存器分配(下) 编译后的结果如下。test2STMDBsp!,{v1,lr}STRa1,[sp,#-4]!MOVa1,spBLfLDRv1,[sp,#0]MOVa1,v1BLgADDv1,a1,v1MOVa1,v1BLgADDa1,a1,v1ADDsp,sp,#4LDMIAsp!,{v1,pc}从编译结果可以看出,修改后的代码只使用了2次内存访问,而test1为4次内存访问。总上所... 2023-06-13 C编程寄存器分配变量ARM编译器文章软件开发程序设计
高效的C编程之:寄存器分配(终) 3.指针链指针链(PointerChains)常被用来访问结构体内部变量。下面的例子显示了一个典型的指针链的使用。typedefstruct{intx,y,z;}Point3;typedefstruct{Point3*pos,*direction;}Object;voidInitPos1(Object*p){p->pos->x=0;p->pos->y=0;p->pos->z=0;}... 2023-06-13 C编程寄存器分配变量ARM编译器文章软件开发程序设计
高效的C编程之: 变量类型(上) 14.8变量类型ARMC编译器支持基本的数据类型:char、short、int、longlong、float和double。表14.2说明了armcc对C语言所使用的数据类型的映射。表14.2 C编译器数据类型映射C数据类型表示的意义char无符号8位字节数据short有符号16位半字数据int有符号32位字数据long有符号3... 2023-06-13 C编程变量类型armccARM编译器文章软件开发程序设计
使用cross-3.3.2编译器的问题 和Windows下的开发不同,嵌入式Linux开发显得有些复杂。其实并不是复杂,而是我们面前的新知识有点多:Linux操作系统、交叉编译器、库、大小端、软浮点...前几天用cross-3.3.2编译器编译Linux-2.6.14内核,就出现了链接错误。对于初学者,这类非语法类错误是非常难查的,所以我只能... 2023-06-13 cross-3.3.2编译器文章软件开发Linux
实现嵌入式系统的准备工作 1.首先确定CPU,在这里为了简单,就选用嵌入式的CPU,比如 arm 系列,之所以用RISC(简单指令集)类型的CPU,其方便之处是没有实模式与保护模式之分,采用线性的统一寻址,也就是不需要进行段页式内存管理,还有就是芯片内部集成了一些常用外设控制器,比如以太网卡,串口等等,不需要像在PC机的主... 2023-06-13 ARMCPU编译器嵌入式文章软件开发嵌入式OS
剖析C语言中a=a+++++a的无聊问题 看法一:a=a+++++a这个东西可以用来讨论,甚至是讨论它的无所事处,作为增长知识和发现自身理解问题的漏洞是可以的。但是绝对不能拿来作为考试题目,特别是选择题或填空题等客观题目。但是如果作为一道主观探讨题还是挺有趣的,理解深刻的人一定可以写的很好。看法二:a=a+++++a的编... 2023-06-13 LinuxC语言编译器gcc文章软件开发程序设计
一线研发之声之C代码注释引发的“血案” 这位看官,既然来了,且读且评吧。故事是真实的,如有雷同纯属巧合。事情是这样的,有人离职,公司调我补缺。那个系统一直有个工程师在维护,参与该系统的新人来了又走,他始终泰若磐石。刚过去一个礼拜,我就心下窃吼:“TMD坑爹啊!”,也彻底体会到什么叫---绝对的权威、专家。... 2023-06-13 一线研发C代码注释编译器编程技巧注释代码编程规范文章软件开发
IAR编译器里如何生成.lib文件 一、打开要编译成库的工程文件,如下图以MT.eww为例:二、将所有的*.h文件选择为拒绝编译。方法:在*.h右击,出现如下界面:勾选 “Exclude from build”。三、选定编译成库,并指定输出路径方法:① 点击Project -> Options (ALT+F7)出现如下界面:② 点击Output,选择Output f... 2023-06-13 IAR编译器.lib文件文章软件开发开发环境
几种单片机C语言编译器的语言不同之处 不同:1.由于不同单片机指令集不同, 汇编语言的程序通常很不一样. 2. c语言则是独立与指令集的高级语言,它不受指令集的影响,大部分代码是一致的,不同之处主要是在以下几处:a) 不同单片机的头文件定义不同(即使同一种单片机不同的编译器里也可能不同).所以相应的端口,寄存... 2023-06-13 C语言编译器文章基础课C语言基础
“Hello world!”的N种写法 通过写一个成功的“Hello world!”,可以实践这门语言最基本的语法特性,还可以带给自己成就感,真是一举两得。C/C++语言本身有很多特性,如果能够将这些技术分解出来变 成一个个的“Hello world!”,并且将这些技术点到为止,貌似也算是一件善事。这里,列举了10... 2023-06-13 编译器语言functorfileC编程文章软件开发程序设计
VC++深入详解之C++笔记 一类的继承假设有一个动物类,他们都有呼吸,睡觉,吃饭继承起来就是这样子的:class animal{public:animal(){cout<<”animal construct”<<endl;}~animal(){cout<<”animal destruct”<<endl;}void eat(){cout<<&rdq... 2023-06-13 VC++C++笔记编译器文章基础课C语言基础
不同C编译器注意事项 目前单片机有多种C编译器,不同编译器之间有很多区别。总结后,主要有以下几点,需要弄清楚:1.寄存器的定义不少编译器已经自带了寄存器的定义文件,比如AT89S52, 使用KEIL C V2.0 环境, 程序可以直接调用寄存器定义文件。 例如: #i nclude (顺便讲一下,#i nclude 与 #i nclude "yyy.... 2023-06-13 C语言汇编编译器文章软件开发开发环境
RealView编译器常用特有功能 一. 关键字和运算符1.__align(n):指示编译器在n字节边界上对齐变量。对于局部变量,n值可为 1、2、4 或 8。对于全局变量,n可以具有最大为 2 的 0x80000000 次幂的任何值。__align关键字紧靠变量名称前面放置。注意事项:只能进行过对齐。也就是说,可以将两个字节的对象按 4 个... 2023-06-13 RealView编译器常用特有功能关键字运算符变量文章软件开发仿真
那年曾让我哭笑不得抓狂的C语言 1.关于+=以及-= 这是两个运算符,但你否有过这种经历:1. int temp; 2. char i 3. for(i=0;i<MAX;i++) 4. { 5. ... 6. temp=+2; //这里本意是每次循环,temp都自增2,但是却将'+='写成了'=+',按照这种写法,每次循环都为temp赋值正数2,与本意相差甚远 7. } 2. 关于意想不... 2023-06-13 C语言死循环代码编译器文章软件开发嵌入式OS