TMS320F28035学习记录七

1.一种处理器可以利用其外设(也可以认为是功能模块)去实现某种功能。具有相同功能的外设一般不止一个,如两个串口外设或6个ePWM外设等。但具有相同功能的外设,其寄存器组分配形式往往是很相似的,我们可以用位域结构体共用体结构体的方式去定义一个功能寄存器组类型,然后用这个自定义类型去定义一个外设。

2.定义每一个寄存器的位域结构体类型,然后用这个位域结构体类型结合整型定义一个共用体类型。用这种方式定义一个功能模块的所有寄存器组。最后采用共用体结构体方式定义一个寄存器组类型。

3.位域的定义必须从右往左的顺序,也就是说从最低位开始定义。一个位域必须存储在一个字节中,不能跨两个字节,如果一个字节所剩空间不够放另一个域,应当从下一个单元起存放该域。位域的长度不应大于一个字节的长度。位域可以无位域名,用作填充或调整位置,无名的位域不能使用。

4.

定义为union形式的成员既可以实现对寄存器的整体操作,也可以实现对寄存器的位操作。而定义为Uint16的成员只能直接操作寄存器。

时间: 2024-11-08 16:23:56

TMS320F28035学习记录七的相关文章

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是一种采用定点运算,但具有浮点

Oracle学习记录 七 继续接六的

下面是转换函数 to_char select to_char(sysdate,'yyyy') from dual; select to_char(sysdate,'fmyyyy-mm-dd') from dual; select to_char(sysdate,'yyyy-mm-dd') from dual; select to_char(sysdate, 'DDD') from dual;    一年中的第几天 select to_char(sysdate, 'DD') from dual; 

TMS320F28035学习记录六

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

c++学习记录(七)

c++学习实践之重载 重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同 c++类中有重载运算符和重载函数 重载函数 声明多个相似但形式参数个数或者类型不同的函数,编译器通过把你所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义. (1)例子 #include<iostream> using namespace std; class Num { public: void print(int a) { cout <

Python学习记录七---继承、多态和封装

1.创建类 创建文件 test7.py #! /usr/bin/env python class Person: def setName(self, name): self.name = name def getName(self): return self.name def greet(self): print "hello, world! I am %s."% self.name foo = Person() foo.setName('yilia') foo.getName() f

SpringMVC学习记录(七)--拦截器的使用

SpringMVC的请求如下面这种图所示: 可以看出所有的请求都要通过Dispatherservlet来接收,然后通过Handlermapping来决定使用哪个控制器,再根据ViewResolver来决定返回哪个视图.从流程来看,Handlermapping就是我们可以实现拦截器的第一种方法.另外还有一种是实现WebRequestInterceptor接口,或者继承其子类. 一.实现HandlerInterceptor接口 实现HandlerInterceptor接口或者继承HandlerInt

TMS320F28035学习记录一

1.拿到一款不熟悉的处理器来研发产品时,我们首先要了解的那些问题? 1).这款处理器属于哪一个公司?这个公司有那些处理器系列? 2).开发平台是什么?开发平台的版本历史和一些联系?最新版本? 3).基于库开发还是寄存器操作?库的版本? 4).处理器的位数?处理器的内核?内部存储器结构?处理器的工作频率? 5).处理器有哪些外设?下载程序方式?能否在线仿真?仿真接口? 6).处理器指令集? 7).参考书籍,开发板,例程? 2.TMS320C28x_TM是低功耗的32位定点处理器内核,具有精简指令集