首页 > 产品 > 电源管理 > UCD3138数字电动工具 >

数字电源 IC

最新课程

热门课程

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 GUI 读取 A_string 的内容。

我现在概要介绍一下 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 GUI 读取 A_string 的内容。

视频报错
手机看
扫码用手机观看
收藏本课程

视频简介

UCD3138数字电动工具:源固件 - 项目结构和实验室代码概述

所属课程:UCD3138数字电动工具 发布时间:2019.03.11 视频集数:6 本节视频时长:00:08:36
该视频介绍了TI为UCD3k代码开发提供的软件工具,并介绍了完成教程所需的UCD3k开环板。
TI培训小程序