- 本课程为精品课,您可以登录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 样片, 新春好礼相赠!
- 活动时间:1月22日-2月28日 如何参与 1、免费样片申请:点击以下任意样片,成功申请2种以上芯片,即有机会获奖。(必须是通过点击以下链接进入参与申请) 用于低功耗可穿戴应用的符合 Qi (WPC) 标准的无线充电器(TIDA-00318) 用于系统唤醒和中断的基于电容的人体接近检测参考设计(TIDA-00220) &...
-
EEWORLD社区
TI技术论坛
- TI CCS5.4.0.00091_win32 (CCS5.4)安装教程以及测评
- TI CCS5.4.0.00091_win32 (CCS5.4)安装教程以及测评 TI CCS5.4.0.00091_win32 (CCS5.4)安装教程以及测评 ...
-
qwqwqw2088
微控制器 MCU
- 你晒单我送礼,晒TI样片订单即可赢好礼!
- 活动详情>>你晒单我送礼,晒TI样片订单即可赢好礼! 活动时间:7月24日-8月23日 如何参与: 1、免费样片申请:>>点击此处,成功申请2类以上芯片,即有机会获奖。 2、申请成功样片后,以“【晒样片】+自拟”为标题,在TI 技术论坛发帖。3、帖子内容包括:本页面截图并圈出所申请的样片类型,申请样片的订单及物流信息、并晒出收到货样片型号,格式不限,内容须原创。 评奖设置:根据大家申...
-
EEWORLD社区
TI技术论坛
- 关于CMD文件的小疑问
- 我知道了MEMORY命令下, 给一些内存区域命名是用户自定义的, 但是SECTIONS命令下, 有些段名让我不明所以。 今天看了点关于程序段的段的知识,知道了.text ,.stack这些代表什么意思。 但是我看了一些CMD文件,如F28335.CMD SECTIONS下有IQmath, IQmath...
-
无知的萝卜
DSP 与 ARM 处理器