DSP笔记

存储器与寄存器

  1. 存储器映射
    存储器本身不具有地址信息,给存储器分配地址的过程叫做存储器映射。如果再分配一个地址,叫重映射。
  2. 寄存器和寄存器映射
    寄存器
    比如0x002020是一个单元地址,为了更好地区分此单元,方便后续的程序开发,可以给这个单元取一个别名SYS,SYS就是寄存器,这个寄存器的地址就是0x002020,整个过程就是寄存器映射。
  3. 访问寄存器内容
    根据#pragma和DATA SECTION(CCS软件内特定的)的特点,可以使用#pragma和DATA SECTION将定义的寄存器与实际的存储单元对应起来,然后在使用C语言操作定义的寄存器,比如结构体等。
    (1)首先要知道GPIO外设没类寄存器所对应存储单元的首地址是哪个,比如CPIO控制寄存器,通过查询数据手册可知其首地址是0x006F80,然后使用#pragma和DATA_SECTION 将定义的寄存器与实际的存储单元对应起来。
#pragma DATA_SECTION(GpioCtrlRegs,"GpioCtrlRegsFile");
//GpioCtrlRegs是寄存器的名字
//该定义可在DSP2833x_GlobalVariableDef.c文件中查找到
vetatile struct GPIO_CTRL_REGS GpioCtrlRegs;
//GpioCtrlRegsFile是SECTIONS内定义的,该定义可在DSP2833x_Headers_nonBIOs.cmd查找到的

在这里插入图片描述
在这里插入图片描述所以如果要让GPIO68输出一个低电平可使用C语言调用结构体内成员,如下:

GpioDataRegs.GPCCLEAR.bit.GPIO68=1;//设置GPIO输出低电平信号
  1. 在TMS320C6678中,寄存器在定义都在.h文件中
    查看详细寄存器的基础操作是按住Ctrl + 鼠标左键点击

工程模板的创建

  1. 获取工程模板基础文件
    光盘自带文件夹
    cmd文件夹中
    .ink文件用来调试和仿真
    F28335文件是将调试好的文件下载到flash
    gel文件夹
    主要用于扩展CCS功能,通过这个文件来进行命令的调用,不需要更改。
    include文件夹
    通用的头文件都在这里
    lib文件夹
    source文件夹
    存放板子所用的.c文件
    .acm是汇编语言编写的文件
    BIOS文件表示使用操作系统的

开发过程中 文件名不能中文,整个路径也不能有中文。

  1. 创建工程模板
    在这里插入图片描述

步骤:
(1)创建一个英文的文件夹用于存放模板
(2)将光盘里的模板文件拷贝到该文件夹中
(3)创建新的空工程,选择好仿真器,板子型号
(4)创建一个空的文件夹用来存放光盘里相应的配置文件,RAM.cmd文件、BIOS文件或noBIOS文件、 source中的一些源文件 lib文件
(5)创建APP文件夹用来存放外设,创建一个user文件夹
(6)在user文件夹下创建一个.c文件
(7)在.c文件中添加相应的头文件,main函数
(8)工程 右键->属性-> include options 添加优盘文件中的include文件夹

导入工程模板

复制之前创建好的工程文件夹,将文件夹重命名,打开CCS软件,将文件夹导入,打开main.c文件即可编程。
建立好的工程文件,需要编译一遍,才能通过ctrl + 鼠标点击方式进入相应的函数中

GPIO(英语:General-purpose input/output),通用型之输入输出的简称,(其接脚可以供使用者由程控自由使用,PIN脚依现实考量可作为通用输入(GPI)或通用输出(GPO)或通用输入与输出(GPIO)),可以通过软件来控制其输入和输出。

引脚分类(6大类)

引脚分为电源引脚、晶振引脚、复位引脚、下载引脚、boot引脚、GPIO引脚

软件设计流程

以设计LED灯为例
步骤:
(1)在工程模板中APP创建新的头文件以及.c源文件
(2)编辑头文件,在头文件中引用板子通用的头文件
(3)编辑源文件,在源文件中引用刚才创建的头文件,并且在main.c文件中调用刚创建的头文件
(4)右键工程->属性 将刚才创建的头文件路径添加进来。
(5)将源文件的函数在头文件中进行声明。 编辑源文件,将源文件的中需要的函数进行定义,主要是初始化(例如开启GPIO时钟,对端口进行配置),真正的实现功能还是在主文件,即main.c文件。
(函数中主要是根据数据手册,对寄存器不同的位数进行设置已完成相应的功能)
(6)在主函数中调用在源文件中声明的函数。(前提:函数已经在头文件声明,头文件中定义)同理,在主文件中调用系统函数原理相同,可以通过Ctrl+鼠标点击 对系统函数进行设置,例如系统的时钟初始化函数。
(7)选中多行代码,利用Ctrl+?可以将多行代码进行注释。
(8)延时函数,可以直接调用已有的。
注意:宏定义后面一定不要加分号
在这里插入图片描述

继电器

继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、保护电路、转换电路等作用。

中断

中断其实就是当CPU执行程序时,由于发生了某种随机的时间(内部或外部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(中断服务子程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程就称为中断,引发中断的称为中断源。
F28335中断机制是3级中断,分别为外设级中断、PIE级中断和CPU级中断。

定时器中断
看门狗计时器

看门狗计时器是用来防止万一单片机程序出错造成重大损失的计时器。防错的原理很简单,它在硬件上就是一个定时器,当它溢出的时候就会让单片机强制复位使程序重新开始执行。正常的情况下是不能让它溢出的,所以在程序上每隔一段时间要给他置一次值(俗称喂狗),只要程序中正常给它喂他就不会溢出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值