首页 » 互联网 » 嵌入式开拓 c措辞_措辞_文件

嵌入式开拓 c措辞_措辞_文件

乖囧猫 2024-12-04 20:16:12 0

扫一扫用手机浏览

文章目录 [+]

先容

在开拓嵌入式产品时,人们首先想到的是用掌握器的汇编措辞来编写监控程序。
其紧张缘故原由有:①汇编措辞天生的程序对应的二进制代码较少,程序实行速率比高等措辞天生的程序要快;②掌握器刚推出时,没有相应的高等措辞可用;③内存的价格问题和寻址空间的限定。

嵌入式开拓 c措辞_措辞_文件 互联网

以上问题已经基本办理,这里就不再赘述了。
实际情形是,在单片机运用领域,开拓职员已经开始利用C措辞进行开拓了。
大家创造用高等措辞开拓嵌入式产品是如此的随意马虎,而且C措辞程序编译出来的二进制代码也非常短小精悍。

目前最常用的数字旗子暗记处理器(DSP)是美国TI公司的TMS320系列,工业掌握中最常用的是TMS320F2XX系列。
TI为每个DSP芯片供应了汇编措辞和C措辞供开拓职员选择。
我一贯利用C措辞进行产品开拓,但很少看到这方面的先容。
因此,我以TMS320F240为例,写了这篇文章,推举利用C措辞开拓DSP嵌入式系统。

1 DSP C 措辞的特点

在利用51系列C措辞的时候大家有没有把稳到,掌握器的C措辞比较于PC上利用的C措辞有一个显著的特点:常常须要进行硬件操作,程序中有大量的操作掌握器内部资源的语句。
因此开拓职员必须理解如何利用C措辞来操控掌握器的内部资源,也便是如何用C语句来操作寄存器、内部存储器等。

例如,在51汇编中,我们写MOV A,#20H;汇编器可以识别出A指的是累加器;而在51 C程序中,我们写ACC=32;编译器可以识别出ACC指的是累加器而不是一样平常的变量。
也便是说,每个寄存器都有一个专门的名字供开拓职员利用。
它们定义在一个头文件reg51.h中。
程序员只需在程序开头用#include “reg51.h”语句包含该文件即可。
把稳:这些寄存器的名称不能用作变量名。

同样,在TMS320F240的C措辞中,也有一个头文件C240.H,定义了各种寄存器的名称。
这里摘录几段,作先容。

例如:

#定义IMR((端口)0x0004)

#定义 XINTI_CR ((端口) 0x07070)

IMR和XINT1_CR对应两个寄存器,实在便是寄存器的地址,或者高等措辞中的指针。
我们在程序开头也用#include “c240.h”语句包含该文件。
这样,在DSP C措辞中,要利用它们,只要在前面加一个星号()即可,例如

IMR=0X1010;/将十六进制数1010H赋给IMR寄存器/

XINT1_CR=0X0A0B0;/将十六进制数A0B0H赋给XINT1_CR寄存器/

建议开拓者打印出c240.h文件,明确各个寄存器的定义名称。
不涉及硬件的语法与ANSI语法相同。
须要把稳的是,ANSI标准中的一些函数在DSP编译器中没有供应。
读者可以参考DSP编译器的C措辞手册。
理解了这些分外性后,从汇编措辞切换到C措辞开拓就很随意马虎了。
当然,没有汇编措辞编程根本的人也可以用C措辞开拓DSP运用系统。

关于嵌入式系统的C措辞编程,请拜会《单片机与嵌入式系统运用》2001年1-6期中的《嵌入式C编程技能》,本文不作谈论,下面只先容以TMS320F240芯片为处理器的嵌入式C措辞编程,希望能辅导读者进行详细的操作。

2 TMS320F240.html" target="_blank" title="TMS320F240">TMS320F240芯片C措辞开拓流程

大略来说,全体过程包括以下5个步骤:

①编辑C措辞源程序;

②编译源程序(把稳编译参数);

③链接目标文件(把稳利用CMD文件);

④在线仿真;

⑤固化工序。

2.1 编辑源程序

可以利用任意的编辑器来编写源程序,如EDIT、NOTEPAD等,末了以.C为后缀保存。
源代码可以写在一个C文件中,也可以写在多个C文件中;一些预定义变量、函数原型声明等可以集中在一个头文件中。

把稳:不要忘却在 C 程序开头利用 #include "c240.h" 包含寄存器定义文件。

2.2 源程序编译

源程序编辑完成后,可以利用DSPCL编译器进行编译,天生OBJ文件。

利用格式:DSPCL源文件名参数

例如:DSPCL EX1.C-V2XX-GK-MN

常用参数含义:

V2XX——表明C编译器选择处理器2XX系列;

GK——保留编译天生的汇编文件(.ASM文件);

MN—实行正常优化。

其他参数请参考DSP编译器的手册,如果有多个源文件须要分别编译,每个源文件编译后都会天生一个OBJ文件和一个ASM文件。

2.3 目标文件的链接

2.3.1 TI的COFF文件格式

TI新的汇编器和编译器创建的目标文件利用COFF(Common MEMORY和SECTIONS)。
MEMORY命令定义目标系统的内存,程序员可以定义每一个内存块,并指定起始地址和长度;SECTIONS命令用于定义输入块的组合和输出块在内存中的存放位置。
如果不该用MEMORY和SECTIONS命令,链接器将利用默认的分配算法。
建议利用这两个命令,但要把稳这两个命令是在CMD文件(链接器命令文件)中利用。

下面对TMS320F240芯片的一个范例CMD文件进行剖析。
(假设文件名为EX1.CMD。

(1)CMD文件的组成及其详细阐明

BOOT.OBJ /F240中断向量表,见后面描述/

EX1.OBJ /源程序编译后对应的目标文件/

/如果程序有多个目标文件,则把它们一起写在这里⁄

-STACK 0X400 /设置系统堆栈/

-C /ROM 初始化/

-O EX1.OUT /输出文件名/

-M EX1.MAP /输出图像文件名/

-L RTS2XX.LIB /链接到RTS2XX.LIB 库/

MEMORY /MEMORY 命令指定系统内存配置/

{

PAGEO:ROM0:起源=0000h,长度=003fh

/闪存 ROM/

PAGE0: ROM1: 原点 = 0040h,长度 = 0200h

/闪存 ROM/

PAGEO:ROM2:原点 = 0240h,长度 = 3000h

/闪存 ROM/

PAGE1:RAM_B2:原点 = 0060h,长度 = 0020h

/内部 RAMB2/

PAGE1:RAM_B1:原点 = 0300h,长度 = 0100h

/内部 RAM B1/

PAGE1:RAM_B0:原点 = 0100h,长度 = 0100h

/内部 RAM B0/

PAGE1:RAM_EX:原点 = 0d000h,长度 = 2800h

/外部扩展RAM/

SECTIONS /SECTIONS 命令指定程序中块的详细分配方法/

.vectors: load = ROM0 /指定向量表的存放位置/

.cinit: load = rom1 /C初始化表存放位置/

text: load=ROM2 /系统程序存放位置/

. bSS load = RAM_B0 / 未初始化数据的存储位置 /

.const load = RAM_B1 初始化数据的存储位置/

}

(2)TMS320F240.html" target="_blank" title="TMS320F240">链接TMS320F240时须要的中断向量表文件

TMS320F240的目标文件在链接时须要用到中断向量表,中断向量表是用汇编措辞编写的,与详细的DSP芯片干系,假设TMS320F240的中断向量表对应的汇编程序为BOOT.ASM,汇编后的文件名为BOOT.OBJ。

以下是范例的向量表文件。
(假设程序名称为BOOT.ASM。

.port /定义中断函数名称/

.globl______________c_int0 /中断0对应函数名/

. globl_c_int1 /中断1对应的函数名,后面语句含义相同/

.globl_c_int2 /中断函数名可以视为中断入口地址/

.globl_c_int3 /向量表的存储无需程序员干预/

globl_c_int4 .

. globl_c_int5

. globl_c_int6


全局_c_int7

. globl_c_int8

·sect ".vectors" / 利用.sect命令自定义一个块用于存放中断向量表 /

RSVECT B _c_int0 /中断0发生后,程序跳转目的地址/

INT1 B _c_int1 /中断1发生后,跳转到c_int1()函数/

INT2 B _c_int2 /含义同上,下同/

INT3B _c_int3

INT4B_c_int4

INT5B_c_int5

INT6B _c_int6

利用汇编器对程序进行汇编,命令格式为:DSPABOOT.ASM-V2XX,天生BOOT.OBJ文件,供链接器利用。
这样,在C源程序中就可以按照以下格式编写中断函数:

void c_inx() /x 是 1 至 8 之一/

{

中断程序的C语句系列;

}

把稳:c_int0()为系统入口函数,用户不能编写。

经由上面对命令文件(CMD文件)和中断向量表的先容之后,接下来就可以链接命令文件来天生DSP芯片实行或者软仿真所须要的OUT文件了。

命令格式:DSPLNK CMD 文件名

例如:DSPLNK EX1.CMD

还有一种情形是不该用CMD文件,采取默认配置,大略解释如下:

命令格式:DSPLNK仿真器复位命令

EMU2XXW EX1. 输出

加载COFF格式的二进制代码,运行仿真。
这里省略调试器的利用。

2.5 程序固化

程序仿真运行精确后,须要将其固化到Flash ROM中,TMS320F240内部有一个16K字的Flash ROM,可以用来固化程序,而不须要外部EPROM(如果程序不大于16K字的话)。

TI 供应的软件都是带固件的,可以通过 JTAG 口通过仿真器把程序写入芯片中。
目前已经开拓出一种新的固件技能,可以通过串口把程序写入 DSP 芯片中,特殊适宜现场调试。
下面先容通过 JTAG 口写入固件的方法。

首先用EMURST命令重置调试器,然后实行以下三个批处理文件。

第一步,实行BCO.BAT批处理文件打消(CLEAR)FlashROM,使其全为0。

第二步,实行BE0.BAT批处理文件,擦除(ERASE)FlashROM,使所有位都为1。

(以上两步不须要修正软件包中附带的两个BAT文件)

第三步,实行BP16K.BAT批处理文件,将自己的OUT文件写入DSP内部的Flash ROM中。
在实行这一步之前,必须先修正BP16K.BAT,将要写入的OUT文件更换本钱身的OUT文件。
我们来看一下这个批处理文件。
假设软件包的安装目录为C:\DSP,该目录下有一个子目录SRC。

prg2xx-p240-m0x0006-w6src\c2xx_bpx.out要写入的OUT文件

如果要将EX1.OUT写入DSP的Flash中,实行以下命令:

prg2xx-p240-m0x0006-w6src\c2xx_bpX.出c:\dsp\EX1.out

经由以上步骤,方案固化,系统可以投入现场试验。

把稳:烧写程序时CPU必须事情在20MHz频率,在SRC子目录下有一个配置文件C240_CFG.I,读者可根据程序解释以及自己系统的外部晶振频率将CPU事情频率设置为20MHz(烧写时的频率)。

IC37:专业的IC家当平台

专业的IC供需交易平台:供应全面的IC数据表信息及新闻,1000万张数据表,1000多个IC品牌。

网站导航

做事中央

关于我们

产品索引:

深圳网警报警平台商业网站备案信息不良信息举报中央工商网络监管电子识别国家公安局备案

IC37:专业的IC家当平台

专业的IC供需交易平台:供应全面的IC数据表信息及新闻,1000万张数据表,1000多个IC品牌。

网站导航

做事中央

关于我们

产品索引:

深圳网警报警平台商业网站备案信息不良信息举报中央工商网络监管电子识别国家公安局备案

IC37:专业的IC家当平台

专业的IC供需交易平台:供应全面的IC数据表信息及新闻,1000万张数据表,1000多个IC品牌。

网站导航

做事中央

关于我们

产品索引:

深圳网警报警平台商业网站备案信息不良信息举报中央工商网络监管电子识别国家公安局备案

IC37:专业的IC家当平台

专业的IC供需交易平台:供应全面的IC数据表信息及新闻,1000万张数据表,1000多个IC品牌。

网站导航

做事中央

关于我们

产品索引:

深圳网警报警平台商业网站备案信息不良信息举报中央工商网络监管电子识别国家公安局备案

IC37:专业的IC家当平台

专业的IC供需交易平台:供应全面的IC数据表信息及新闻,1000万张数据表,1000多个IC品牌。

网站导航

做事中央

关于我们

产品索引:

深圳网警报警平台商业网站备案信息不良信息举报中央工商网络监管电子识别国家公安局备案

IC37:专业的IC家当平台

专业的IC供需交易平台:供应全面的IC数据表信息及新闻,1000万张数据表,1000多个IC品牌。

网站导航

做事中央

关于我们

产品索引:

深圳网警报警平台商业网站备案信息不良信息举报中央工商网络监管电子识别国家公安局备案

IC37:专业的IC家当平台

专业的IC供需交易平台:供应全面的IC数据表信息及新闻,1000万张数据表,1000多个IC品牌。

网站导航

做事中央

关于我们

产品索引:

深圳网警报警平台商业网站备案信息不良信息举报中央工商网络监管电子识别国家公安局备案

IC37:专业的IC家当平台

专业的IC供需交易平台:供应全面的IC数据表信息及新闻,1000万张数据表,1000多个IC品牌。

网站导航

做事中央

关于我们

产品索引:

深圳网警报警平台商业网站备案信息不良信息举报中央工商网络监管电子识别国家公安局备案

IC37:专业的IC家当平台

专业的IC供需交易平台:供应全面的IC数据表信息及新闻,1000万张数据表,1000多个IC品牌。

网站导航

做事中央

关于我们

产品索引:

深圳网警报警平台商业网站备案信息不良信息举报中央工商网络监管电子识别国家公安局备案

IC37:专业的IC家当平台

专业的IC供需交易平台:供应全面的IC数据表信息及新闻,1000万张数据表,1000多个IC品牌。

网站导航

做事中央

关于我们

产品索引:

深圳网警报警平台商业网站备案信息不良信息举报中央工商网络监管电子识别国家公安局备案

标签:

相关文章