- 本课程为精品课,您可以登录eeworld继续观看:
- UCD3138数字电动工具:源固件 - 项目结构和实验室代码概述
- 登录
- 课程目录
- 课程笔记
我现在概要介绍一下UCD 项目结构
和实验练习一中的源代码。
这是一个典型的项目文件夹结构。
其设置使您可以通过 Code Composer Studio 中的
单一项目访问每个 UCD 版本的
标题和连接器命令文件。
C 源文件位于其自身的文件夹中。
该文件也将包含项目的一些
标题文件。
我们稍后将简要介绍一下主源文件。
输出文件是在包含
源文件的文件夹中构建或放置项目时
生成的。
每个 UCD 版本有一个单独的
输出文件夹。
Pmbus_common 包含PMBus 处理程序例程
所需的文件,这对于所有 UCD 版本都是相同的。
每个 UCD 器件版本的标题和
连接器命令文件也放置
在该级别上。
当您在 CCS 中选择特定的配置时,
CCS 创建过程将配置为
给所选的 UCD 器件选择正确的标题
和连接器命令文件。
这些标题和连接器命令文件夹的
大部分内容都不必更改。
因此,目前只需知道它们的存在即可。
每个 UCD 器件的样片标题和连接器命令文件
都由 TI 提供。
现在概要介绍一下主源文件。
在 CCS 中打开实验练习一项目。
main.c 包含主程序函数。
一般而言,在 main.c 中会调用一些初始化函数。
例如,调用 SPMBus以初始化 UCD 器件中的
PMBus 外设,以及设置 PMBus 处理程序
例程的变量。
clear_integrity_word这个函数
用于清除程序FLASH 校验和,
是决定器件是在 RAM 模式还是闪存模式中引导的关键。
我稍后将更详细地解释这个函数,
以及 RAM 模式与闪存模式的差异。
这是主循环。
您可以看到,它是一个无限循环。
在主循环中,我们通常放置常规处理例程 --
即,并非特别时间关键或
时间敏感的例程。
例如,PMBus处理程序例程
总是放置在这里。
这些例程通常作为
状态机使用静态或全局变量来实现,
使它们可以通过快速和标准中断服务
例程来中断,并且在中断服务例程
完成执行后可以继续无缝地
执行。
interrupts.c 包含快速和标准中断服务
例程。
中断服务例程现在是空的。
随着我们逐渐完成实验练习,
我们将向它们添加代码。
外设的全局变量定义
位于cyclone_global_variable_defs.c 中。
例如,ADC寄存器就在此处定义。
现在,我们将浏览部分 include 文件和连接器
命令文件。
首先,简要看一下连接器命令文件。
我们将看一下适用于 UCD3138 的连接器命令文件。
UCD3138 系列中的每个器件
都具有其自身的连接器命令文件集。
目前只需知道这些文件的存在即可。
您无需修改它们。
cyclone_headers.cmd 是将 UCD 器件的外设结构
映射至内存的连接器命令文件。
例如,LOOP_MUX、UART 外设以及 ADC。
UCD 器件的总体内存映射
都在 cyclone.cmd 中定义。
例如,我们将DFLASH 或者说数据闪存的
起始地址定义为十六进制 18800,并且长度是
以十六进制表示的 800 字节。
load_ucd3138.asm 含有适用于 UCD3138 器件的
自定义系统和变量初始化。
UCD3138 系列中的每个器件
都有其自身的 load.asm 文件。
load.asm 还包含中断和复位矢量。
相应 load.asm文件的纳入
取决于您在 Code Composer Studio 中构建的代码是针对哪种 UCD
器件。
例如,如果您针对 UCD 3138064器件构建代码,
负载 [? _ ?]ucd3138064.asm
将会纳入项目中。
该代码的开销必须低,
因此以汇编语言编写该代码。
您无需修改此代码。
因此现在无需更为详尽地学习该代码。
现在,简要看一下头文件。
我们将看一下适用于UCD3138 的头文件。
UCD3138 系列中的每个器件
都具有其自身的头文件集。
目前只需知道这些文件的存在即可。
您无需修改它们。
ucd3138a64_header文件夹中的这些文件
包含 UCD3138A64器件的头文件。
这些特定的文件包含外设的结构文件。
cyclone_device.h 是一个含有所有其他
外设头文件的头文件。
我们稍后将更为详细地展示这些按位结构的
使用。
简而言之,它们使我们能够使用一次读取/修改/写入操作
设置或清除寄存器中的单个位。
与使用单个常量编写的单个寄存器相比,
它们在时间和代码空间方面相对低效。
最佳方法是在开发中使用这些结构体,
然后在稍后需要优化代码时,切换至常量。
现在,简要看一下实验练习一的代码。
它非常简单。
它只不过将一个字符串变量设为“Hello World”。
在实验练习一,我们创建了一个称作 a_string 的字符串变量,
该变量在 variables.h 中定义。
如果我们回到main.c,我们会将
A_string 的值设置为“Hello World”。
当我们使用 UCD GUI
将该程序下载至 UCD 编程闪存后,
我们将能够使用 UCD
课程介绍
共计6课时,36分25秒
猜你喜欢
换一换
推荐帖子
- 【TI首届低功耗设计大赛】装好软件,点亮LED2
- 此次收到寄来的板子,内心非常激动。本人酷爱电子,空闲爱看电子方面的书籍,几年前就听说过430单片机,出差到电子市场也看到有专门的方案工程师使用430做仪表类的方案。以前也看过一些430的电子书,但是单片机光看书是很难学会的,此次能获得这一块金刚狼的板子,太棒了,可以好好地学习一430的单片机。 对...
-
long521
微控制器 MCU
- 【TI首届低功耗设计大赛】FR5969 RTC之官方库注释纠错
- 本帖最后由 转身0105 于 2014-11-18 19:07 编辑 项目中用到了RTC模块,直接用的官方库来开发的,在使用中发现“driverlib\rtc_b.h”中Calendar的注释有一些小问题,贴上代码//***************************************************************************** // //! \bri...
-
转身0105
微控制器 MCU
- 急速充电还是快速充电,总比慢速充电好?
- 作者:Dave Freeman 急速 (Fast) 和快速 (quick) 这样的词汇带有非常主观的意思。比如,有一次我去看医生比往常到得要早些,接待员说我来得早,可以很快看完病离开。真好,我预计能够及时回去工作,还能赶上一场我原本以为已经赶不上的会。在看完一本《人车志》和一本两年前的《国家地理》杂质后,我才被叫到就诊室。在看医生之前,我甚至还有时...
-
qwqwqw2088
模拟与混合信号
- 【TI首届低功耗设计大赛】IAR 新建工程
- 本帖最后由 william228 于 2014-11-14 09:42 编辑 开发51用keil,ARM-M3/M0用MDK。但是从MSP430F149开始就用IAR,对IAR比较熟悉 安装包及补丁(你懂得)http://pan.baidu.com/s/1pJp059h 安装IAR for MSP430 版本号:5.50.1.504651、双击快捷方式 然后进入IDR 2、在菜单栏...
-
william228
微控制器 MCU