TMS320F28035学习记录四

1、F28035_Device.h

此文件是常用的宏的定义,里面定义了数据类型,包含了必要的头文件,还有所使用器件的定义.如果使用其它器件,可以在这里更改。

2、F 28035_Examples.h

它是为了设置PLL,系统时钟,而定义的常数。

3、F28035_CodeStartBranch.asm

控制启动时转向的。它关闭看门狗并转向程序入口。

4、F28035_DefaultIsr.c

此文件包含外设的ISR例程。在开发过程中,这些ISR例程可以被消除,并与用户自己的ISR例程替换为每个中断。由于这些外设的ISR包含无限循环,他们通常不被使用在最终的程序中。

它是缺省的中断程序,包括了所有中断程序的框架,如:

// Connected to INT13 of CPU (use MINT13 mask):

interrupt void INT13_ISR(void)     // INT13 or CPU-Timer1

{

// Insert ISR Code here

// Next two lines for debug only to halt the processor here

// Remove after inserting ISR Code

asm ("      ESTOP0");

for(;;);

}

当进入中断时,将什么也不做,并停留在那里。用户编程时,可以重新定义中

断函数并转向它,如:PieVectTable.XINT1 = &UserInttruptFunction

也可以修改这个文件中的函数。

5、F28035_GlobalVariableDefs.c

这个文件是是定义F28035 内部寄存器的,与CMD 文件一道分配寄存器地址,并定义寄存器文件结构变量。

6、F28035_PieVect.c

这个文件是定义中断矢量表中的结构体中的初始化使用的成员变量为的F2802x_DefaultIsr.c所定义的函数名

const struct PIE_VECT_TABLE PieVectTableInit = {

PIE_RESERVED,  // 0  Reserved space

PIE_RESERVED,  // 1  Reserved space

PIE_RESERVED,  // 2  Reserved space

PIE_RESERVED,  // 3  Reserved space

PIE_RESERVED,  // 4  Reserved space

PIE_RESERVED,  // 5  Reserved space

PIE_RESERVED,  // 6  Reserved space

PIE_RESERVED,  // 7  Reserved space

PIE_RESERVED,  // 8  Reserved space

PIE_RESERVED,  // 9  Reserved space

PIE_RESERVED,  // 10 Reserved space

PIE_RESERVED,  // 11 Reserved space

PIE_RESERVED,  // 12 Reserved space

// Non-Peripheral Interrupts

INT13_ISR,     // INT13 or CPU-Timer 1

INT14_ISR,     // INT14 or CPU-Timer 2

DATALOG_ISR,   // Datalogging interrupt

RTOSINT_ISR,   // RTOS interrupt

//---------------------------------------------------------------------------

// InitPieVectTable:

//---------------------------------------------------------------------------

// This function initializes the PIE vector table to a known state.

// This function must be executed after boot time.

void InitPieVectTable(void)

{

int16    i;

Uint32 *Source = (void *) &PieVectTableInit;

Uint32 *Dest = (void *) &PieVectTable;

// Do not write over first 3 32-bit locations (these locations are

// initialized by Boot ROM with boot variables)

Source = Source + 3;

Dest = Dest + 3;

EALLOW;

for(i=0; i < 125; i++)

*Dest++ = *Source++;

EDIS;

// Enable the PIE Vector Table

PieCtrlRegs.PIECTRL.bit.ENPIE = 1;

}

上面的函数功能是将所有defaultISR.c中定义的中断函数都转化为中断入口地址保存在PieVectTableInit结构体变量的成员中,之后再通过void InitPieVectTable(void)函数将挣够结构体中的变量整体搬迁到以PieVectTable变量首地址为起点处,如下

#pragma DATA_SECTION(PieVectTable,"PieVectTableFile");

#endif

struct PIE_VECT_TABLE PieVectTable;

7、F28035_PieCtrl.c

PIE初始化函数,将PIE初始化到一个确定的位置

8、F28035_SysCtrl.c

系统的时钟控制,在这个文件中完成。

9、F28035_MemCopy.c

这是对于烧写到FLASH 中的程序,拷贝到RAM 中运行时使用的。因为在flash中运行程序,需要插入等待时间,在RAM 中运行不需要等待。

10、F28035_usDelay.asm

这是个延时函数,很简单。这个文件中还有个“ramfuncs”(具体细节将在其它

文章中叙述),这样定义后就可以使用MemCopy()将它拷贝到RAM 中运行:

.def _DSP28x_usDelay

.sect "ramfuncs"

.global  __DSP28x_usDelay

_DSP28x_usDelay:

SUB    ACC,#1

BF     _DSP28x_usDelay,GEQ    ;; Loop if ACC >= 0

LRETR

时间: 2024-10-08 23:02:05

TMS320F28035学习记录四的相关文章

高可用mongodb集群的学习记录(四mongodb分片集群搭建)

无论oracle还是mysql数据库都有分区的概念,即同一张表物理上不在同一台机器上,有效缓解了表都集中存在一台机器的压力.当然,mongodb也有类似的机制,即是分片.具体理论知识大家可以参考网上文档,我这里只记录下具体操作步骤 参考网络上一个图.我选用的是2个副本集+1个仲裁.实际上我这里分片集群需要3个mongos,3个config server,数据分片3个shard server,对应着还有3个副本,3个仲裁节点,总共需要15个实例.因为我资源确实紧张,又不想影响实验效果.冥思苦想了一

Mybatis学习记录(四)--高级查询和缓存

这些都是连贯的学习笔记,所以有的地方因为之前都说过,所以也就没怎么写详细了,看不太明白的可以看看之前的笔记. 一.高级查询 高级查询主要是一对一查询,一对多查询,多对多查询 1.一对一查询 有用户和订单两个表,用户对订单是1对1查询.也就是订单中有一个外键是指向用户的. 先创建实体类: User.java public class User { private int id; private String username; private String password; private St

Maven学习记录(四)--多模块开发配置

多模块的好处就是协同开发,对于大的项目这样分工可以提高效率,同时减轻代码耦合,看起来也一目了然,maven多模块还解决了不同人开发使用的架包版本冲突等问题 一.创建项目 1.创建父级容器 不要使用模板,直接创建,创建后就可以直接把src目录删除,这个容器是用来承载其他子项目的 2.创建子项目 直接对着父项目右键,然后创建module,选择你需要用到的模板 3.创建后IDEA生成的配置 首先是目录结构, 对应的maven结构,root代表父项目 父项目的pom.xml,IDEA很智能的把要配置的都

SpringMVC学习记录(四)--文件上传

学习一个框架少不了学习文件上传 在使用springMVC进行系统实现时,springMVC默认的解析器里面是没有加入对文件上传的解析的,这可以方便我们实现自己的文件上传.但如果你想使用springMVC对文件上传的解析器来处理文件上传的时候就需要在spring的applicationContext里面加上springMVC提供的MultipartResolver的申明.这样之后,客户端每次进行请求的时候,springMVC都会检查request里面是否包含多媒体信息,如果包含了就会使用Multi

产品需求文档的学习记录(四)

前三篇文章我们逐步梳理了产品的信息结构.框架结构.界面结构(原型),这一步我们就要根据之前完成的工作,开始正式撰写产品需求文档了(PRD文档). 通过之前的准备工作,我们更加清楚了产品的需求,并细致的考虑了方案的可行性,从而减少与避免了撰写文档时容易忽略的细节黑洞. PRD文档没有标准的规范,也没有统一的模板,每个公司都不一样,并且每个人也不一样,这个取决于个人习惯和团队要求.虽然PRD文档没有标准的规范,但是有两项是必不可少的,那就是文件标识和修改记录.文档在撰写过程中,我们可以自行不断的修改

TMS320F28035学习记录二

1.TI处理器命名规则 TMS代表合格产品:TMX代表实验产品:TMP代表模型产品. 320 代表DSP产品系列:430 代表单片机产品系列: 470 代表ARM产品系列. F 代表内部存储器为Flash:C 代表内部存储器为ROM. 28035 代表产品型号. 2.CCS5的标准C文件以及TI自己扩展的一些头文件在C:/ti/ccsv5/tools/compiler/c2000_6.1.0/include.C2x系列的DSP都要用到这个包含文件. 3.现在C2000系列的库的开发版本有V121

TMS320F28035学习记录三

1.调用TI的官方延时函数DELAY_US()的步骤,在DSP2803x_Examples.h头文件中. 使用TI定义的DELAY_US()函数步骤: 1). 工程添加 DSP2803x_usDelay.asm文件 2).声明extern Uint16 RamfuncsLoadSize,(RamfuncsRunStart RamfuncsLoadStart在DSP2803x_GlobalPrototypes.h已声明) 3). 使用 memcpy(&RamfuncsRunStart, &R

TMS320F28035学习记录五

IQMath lib的使用 参考手册<IQmath_Quickstart.pdf> 版本V1.6.0 存放路径:C:\ti\controlSUITE\libs\math\IQmath\v160\doc 1.TMS320F28035是TI公司推出的32位定点DSP芯片,其硬件本身不支持浮点数运算,在用C语言编程时用到的浮点运算是在软件层面上完成的,并非TMS320F28035具备浮点运算能力.用C语言编程在软件上实现浮点数运算将增加代码量和程序运行时间.IQmath是一种采用定点运算,但具有浮点

TMS320F28035学习记录六

1.TMS320F28035的引脚绝对不能输入5V的电压,当引脚内部上拉或下拉时,会产生100uA的电流,这个参数在低功耗设计中会很有用,说明上拉下拉设置是不好随便来的.所有具有输出功能的引脚,其输出缓冲器驱动能力的典型值是4mA,这样是比51或M3内核的控制器的引脚驱动能力弱很多的. 2.TMS320F28035工作电压分为两部分:3.3V的Flash电压和1.8V的内核电压. 3.在AD采样过程中,当AD采样端口悬空时,采集进来的值是随机值,所以没有用到的AD端口建议接地. 4.影响ADC采