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

+荐课 提问/讨论 评论 收藏
  • 本课程为精品课,您可以登录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秒

UCD3138数字电动工具

数字 UCD3138 电动工具

现在,我将简要概述 在写入编程闪存时 用于 UCD3138 及校验和安置的 引导 BOM 程序。 这些校验和提供了 一种在允许 ARM 内核 执行编程闪存 中的代码前 让引导 ROM 检查编程闪存 完整性的方法。

推荐帖子

【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
分享到X
微博
QQ
QQ空间
微信

EEWorld订阅号

EEWorld服务号

汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新文章 手机版

站点相关: EEWORLD首页 EE大学堂 论坛 下载中心 Datasheet 活动专区 博客

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved