DSP2812系统头文件结构

来源:本站
导读:目前正在解读《DSP2812系统头文件结构》的相关信息,《DSP2812系统头文件结构》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《DSP2812系统头文件结构》的详细说明。
简介:本文主要介绍的是开发板DSP2812系统文件结构类型。

以AD寄存器的文件结构,说明AD寄存器的命名,分配地址空间以及调用和使用。

1.在DSP28_Adc.h中定义一个ADC_REGS类型的寄存器AdcRegs。

ADC_REGS是一个结构体类型,这个结构体类型如structADC_REGS所义。

Union是一种声明共用体的的关键字,即ADCTRL1是一unionADCTR1_REG类型。

unionADCTR1_REG的定义如下,Uint16的一个16位整形和结构体ADCTRL1_BITS共用一个内存空间,也就是说这16位内存空间既可以按照DCTRL1_BITS中定义的位域进行寻址操作,也可以按照Uint16定义的16位进行整体寻址操作。

然后在定义了一种ADC_REGS结构体,该结构体包含所有定义的寄存器。externvolatilestruct ADC_REGSAdcRegs,定义一种可硬件改变的ADC_REGS类型的结构体变量AdcRegs,用extern将其修饰为全局变量,可以被其他文件所引用。

定义一种

structADCTRL1_BITS{ //bits description

Uint16 rsvd1:4; //3:0 reserved

……

};

unionADCTRL1_REG{

Uint16 all;

structADCTRL1_BITS bit;

};

structADC_REGS{

unionADCTRL1_REGADCTRL1; //ADCControl1

……

……

};

externvolatilestructADC_REGSAdcRegs;

2.在文件DSP28_Device.h中将所有的寄存器头文件包含在内

如:

#include"DSP28_Gpio.h" // 通用I/O模块寄存器

#include"DSP28_Adc.h" //ADC 寄存器

……

……

3.在文件DSP28_GlobalVariableDefs.c中,首先包含#include"DSP28_Device.h",这样DSP28_GlobalVariableDefs.c就可以使用所有定义好的寄存器。

这个文件的作用是将AdcRegs用汇编语言给其分配段AdcRegsFile,就是将AdcRegs写入内存中的段AdcRegsFile。

#pragmaDATA_SECTION(AdcRegs,"AdcRegsFile");

volatilestructADC_REGSAdcRegs;

4.SRAM.cmd主要是分配内存,定义

MEMORY

{

PAGE1:

GPIODAT :origin=0x0070E0,length=0x000020

ADC :origin=0x007100,length=0x000020

}

首先分配一个名为ADC的段,起始地址为0x007100,长度为0x000020。

Section{

AdcRegsFile :>ADC, PAGE=1

}

这段的作用是将#pragmaDATA_SECTION(AdcRegs,"AdcRegsFile");

产生的AdcRegsFile写入在内存中分配的段ADC 这样就将相应的寄存器和DSP

中对应的外设帧一一映射起来。

5.文件名:DSP28_Adc.c中,首先包含#include "DSP28_Device.h",这样就可以使用所有的寄存器。

voidInitAdc(void)

{

AdcRegs.ADCTRL1.bit.RESET=1; //ADC软件复位

AdcRegs.ADCTRL1.all=0x4f00; //ADC控制寄存器初始化ADC

软件复位,

}

在这个文件中,定义关于ADC的函数。

6.在文件DSP28_GlobalPrototypes.h中,将所有的.c文件中定义的函数变为全局函数,这样,如要引用函数,只要在DSP28_GlobalPrototypes.h添加extern 函数。

如:

externvoidInitAdc(void);

然后在需要引用此函数的文件中加入DSP28_GlobalPrototypes.h,这样就可以引用所有的函数。

7.如主函数中,

#include"DSP28_Device.h"

// 包含此头文件,即包含了所有.h文件,如ADC.h,这样就可以调用任何寄存器。

#include"DSP28_Globalprototypes.h"

// 包含此头文件,即可以调用所有加入DSP28_GlobalPrototypes.h中x.c中的函数。

#include"DSP28_GlobalVariable.h"

// 里面没有内容,留给用户自己所有的全局变量。

提醒:《DSP2812系统头文件结构》最后刷新时间 2024-03-14 01:08:33,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《DSP2812系统头文件结构》该内容的真实性请自行鉴别。