This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/TMS320F28335:如何使用 TIRTOS (SYSBIOS)访问 GPIO?

Guru**** 2613335 points
Other Parts Discussed in Thread: C2000WARE, TMS320F28335

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/694314/rtos-tms320f28335-how-do-i-access-gpio-using-tirtos-sysbios

器件型号:TMS320F28335
主题中讨论的其他器件:C2000WARE

工具/软件:TI-RTOS

我目前正在尝试学习如何使用 SYS/BIOS  6.70.00.21。  

我只想让 LED 闪烁或执行其他一些简单的 I/O 操作。 我似乎不知道如何这样做、我很感谢您的帮助。 在阅读用户指南时、E1节提到了"GIO 驱动程序"、但表示它们已被弃用。 我看不到该指南中提到的任何替代产品。 我应该使用不同版本的 TI-RTOS 吗? 另一篇文章告诉我 C28335没有 TI-RTOS、SYS/BIOS 是我应该使用的内容(如果我弄错了、请告诉我)。 谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Frank、

    正确的是、F28335不支持 TI-RTOS 驱动程序。 相反、您可以在 SYS/BIOS 项目中使用 C2000Ware 中的 F28335代码与外设进行交互。 您可以使用 C2000Ware 示例指导您完成哪些文件和包含路径、需要将其添加到 SYS/BIOS 工程以使其能够使用 C2000Ware 头文件、然后可以像通常那样写入 GPIO 寄存器(例如 GpioDataRegs.GPATOGGLE.bit.GPIO3 = 1)。

    惠特尼
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的惠特尼:

    在这种情况下、 我是否可以指导您回答上一个问题?

    我认为我忽略 C2000Ware 是正确的选择、但显然我仍然需要它。 那么、现在我回到第一个方形。  

    也许您随后可以向我介绍一个设置 LED 以在 SYS/BIOS 计时器上闪烁的示例?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、您仍需要 C2000Ware。

    我看了你的另一篇帖子,看起来你的项目中的大部分内容已经完成了, 你的#include 和链接路径至少看起来很好。 我怀疑您会希望使用闪存 cmd 文件而不是 RAM 文件、这样您就有足够的空间来处理 SYS/BIOS、并且希望这将清除其中的一些链接器错误。 您还需要将 DSP2833x_GlobalVariableDefs.c 文件添加到您的项目中、并 #include DSP28x_Project.h 然后、您应该能够使用 GpioCtrlRegs 和 GpioDataRegs 来配置 GPIO 寄存器。

    请再试一次、如果您遇到更多错误、请告知我。

    processors.wiki.ti.com/.../BIOS_for_the_28x

    惠特尼
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Whitney 的回应。 我相信我已经完成了上述所有工作、但我仍有问题。 请参阅下面的日志输出。 我还附加了项目(链接了 C2000ware 文件、因此您的路径可能不同)。 我已经使用了附加的链接器命令文件(而不是我之前使用的 RAM 链接器命令文件)。 我将其重命名为文本文件、以便可以在此处上传。

    e2e.ti.com/.../F28335.cmd.txte2e.ti.com/.../many_2D00_hours.zip

    ****项目多小时配置调试的构建**"C
    
    :\\ti\\ccsv8\\utils\bin\\gmake"-k -j 8 All -O
    
    Making ./src/sysbios/sysbios.a28FP……
    gmake[1]:没有为"全部"执行任何操作。
    生成文件:"../main.c"
    调用:C2000编译器
    "C:/ti/ccsv8/tools/compiler/ti-cgt-c2000_18.1.1.LTS/bin/cl2000 /Users/fpernice/workspace_v8/many-hours
    /ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/headers/include/DSP2833x_Device.h -v28 -ml -mt --float_support=fpu32 --include_path="C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/headers/include --include_path="C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/include --include_path="C:/ti/ccsv8/tools/compiler/ti-cgt-c2000_18.1.1.LTS/include --include_path="C:/ti/bios_6_70_00_21/packages/ti/posix/ccs --include_display_subsection="c_pendits=d_subs"-over-config_buls"-命令行=d_section:c=inflature=d_sbulation_sbulation_sbe.compring_decuring_decuring="-ines=-ines=-ines=-ines=-ines\chection_subs"-=-intrendating_decuring_decuring_decures=-out_subs"-命令行-out_subs"-=-ines"-=d_subs"-=d_subsection.cpu.cpu.cp.cp.cp. typuf name has already been declared (with same type)
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/headers/include/DSP2833x_Device.h、line 124:warning #303-D:typedef name has already been declared (with same type)
    building:"./main.c"
    
    building file:"c:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/headers/source/DSP2833x_GlobalVariableDefs.c
    
    /ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/include /ti/ccsv8/tools/compiler/ti-cgt-c2000_18.1.1.LTS/include 调用:C2000 Compiler "C:/ti/ccsv8/tools/compiler/ti-cgt-c2000_18.1.1.LTS/bin/cl2000 /Users/fpernice/workspace_v8/many-hours -ml -mT -float_support=-cn"c:path=/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/headers/include --cn"-cn_band-cn"c:g"-path="c:-cn"-cn"-cn_path=/ti/bios_6_70_00_21/packages/ti/posix/ccs diag_warning=225 --diag_warning=255 --diag_wrap=off --display_error_number --gen_func_subsections=on --preproc_with_compile --preproc_Dependency="dSP2833x_VariableDefs.d_ray"--cmd_file="pkg/compiler.opt"/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/headers/source/DSP2833x_GlobalVariableDefs.c
    
    
    /src/sysbios/sysbios.a28FP 完成构建/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/headers/source/DSP2833x_GlobalVariableDefs.c 过程:。
    gmake[2]:对于"全部"没有要做的事情。
    构建目标:"多小时.out"
    调用:C2000 Linker
    "C:/ti/ccsv8/tools/compiler/ti-cgt-c2000_18.1.1.LTS/bin/cl2000 /ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/headers/cmd /ti/ccsv8/tools/compiler/ti-cgt-c2000_18.1.1.LTS/lib -v28 -ml -mt -float_support=fpu32 -g -diag_warning=225 --diag_warning=255 --diag_warning_off-display_error_number --gen_float_subsections=on -z -m"-m"-diag_intrad_ex-rom-code.ex-code.example_status_ex-rom-code.html"-code_ex-code.ex-rom-code.ex-rom_code_intrack_ex-code.ex-rom-code.ex-code.html"-code_intrack_code.ex-code.example.ex-rom-cn"-code_intrack_ex-cn/secnom.cn"/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd -code.ex-cn"-code.ex-intrack_code.ex-cn"-cn"-cn/sprine.ex-code.ex-code.ex-cn/sec.cn"-code.ex-cn/sec./ti/ccsv8/tools/compiler/ti-cgt-c2000_18.1.1.LTS/include
    
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第115行:错误#10264:FLASHH 存储器范围与现有存储器范围重叠
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第116行:错误#10264:FLASHG 存储器范围与现有存储器范围重叠"C
    :/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第117行:错误#10264:FLASHF 存储器范围与现有存储器范围重叠
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第118行:错误#10264: FLASHE 存储器范围与现有存储器范围重叠
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd "、第119行:错误#10264:FLASHD 存储器范围与现有存储器范围重叠"C
    :/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd "、第120行:错误#10264:FLASHC 存储器范围与现有存储器范围重叠"C
    :/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd "、第121行:错误#10264:FLASHA 存储器范围与现有存储器范围重叠
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第122行: 错误#10263:csm_RSVD 内存范围已指定
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第122行:错误#10264:csm_RSVD 内存范围与现有内存范围重叠 csm_RSVD
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第123行:错误#10263:已指定开始内存范围
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第123行:错误#10264:开始内存范围与现有内存范围重叠
    "、第 C:124行:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd 错误#10263:CSM_PWL 存储器范围已指定
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd "、第124行:错误#10264:CSM_PWL 存储器范围与现有存储器范围重叠 CSM_PWL
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd "、第125行:错误#10263:OTP 存储器范围已指定
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd "、第125行:错误#10264:OTP 存储器范围与现有存储器范围重叠
    :C:"126行:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd 错误#10263:ADC_CAL 存储器范围已指定
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd "、第126行:错误#10264:ADC_CAL 存储器范围与现有存储器范围重叠 ADC_CAL
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第128行:错误#10263:IQTABLES 存储器范围已指定
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第128行:错误#10264:IQTABLES 存储器
    范围与现有存储器范围重叠"IQTABLES:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd 错误#10263:IQTABLES2存储器范围已指定
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd
    
    
    /ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd "、第129行:错误#10264:IQTABLES2存储器范围与现有存储器范围重叠 IQTABLES2 "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd "、第130行:错误#10263:FPUTABLES 存储器范围已指定为"C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第130行:错误代码:FPUBLES 存储器范围与现有存储器范围重叠"、代码:FPUB10131:FPUBAULES:FPUBLES:代码重叠 错误#10263:ROM 存储器范围已指定
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd "、第131行:错误#10264:ROM 存储器范围与现有存储器范围重叠 ROM
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第132行:错误#10263:已指定复位存储器范围
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第132行:错误#10264:复位存储器范围与现有存储器范围重叠复位
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第133行: 错误#10263:向量内存范围已指定
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd "、第133行:错误#10264:向量内存范围与现有内存范围向量重叠
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第139行:错误#10264:BOOT_RSVD 内存范围与现有内存范围重叠 M01SARAM
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第140行:错误#10264: RAMM0存储器范围与现有存储器范围 M01SARAM
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd "、第141行:错误#10264:RAMM1存储器范围与现有存储器范围 M01SARAM
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd "、第142行:错误#10264:RAML4存储器范围与现有存储器范围重叠 L07SARAM
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd "、第143行:错误#10264:RAML5
    :现有存储器范围:"RAM07SARAM"、/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd 错误#10264:RAML6存储器范围与现有存储器范围重叠 L07SARAM
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd
    
    
    /ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd "、第145行:错误#10264:RAML7存储器范围与现有存储器范围重叠 L07SARAM "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第167行:警告#10190-D:绝对符号"_RamfuncsLoadStart"正在重新定义"C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第168行:" Ramfuncs169:#10190-D:"绝对符号"10190-D:"重新定义"RamfuncsLoadStart"、第10190-D 行:警告代码:" 绝对符号"_RamfuncsRunStart"被重新定义
    "C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd
    
    
    /ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd "、第170行:警告#10190-D:重新定义绝对符号"_RamfuncsLoadSize"、第167行:警告#10190-D:绝对符号"_RamfuncsLoadStart"被重新定义"C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第168行:警告#10190-D:
    "绝对符号"RamfuncsLoadStart"、警告#10190-D:"RamfuncsStart"、"Ramfunc:绝对符号"RamfuncsStart"/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd /ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd:绝对符号"RamfuncsStart"、代码"Ramfunicround"代码"10190-D:"Ramfunc:"RamfuncsStart"、"RamsLoad 重新定义绝对符号"_RamfuncsLoadSize"
    、/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd 第167行:警告#10190-D:重新定义绝对符号"_RamfuncsLoadStart"、
    /ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd 第168行:警告#10190-D:绝对符号"_RamfuncsLoadEnd"正在
    
    /ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd 重新定义"C:/ti/C2000Ware_1_00_04_00_Software/device_support/f2833x/common/cmd/F28335.cmd、第169行:警告#10190-D:正在重新定义"RamfuncsLoadStart"、警告#10190-D:
    绝对符号"RamfuncsStart"、警告代码#10190-D:正在重新定义"RamfuncsRunsLoad"C:"、警告代码#10190-D:"RamfuncsStart" 指定了“_c_int00”以外的入口点符号:“code_start”
    错误#10010:链接过程中遇到错误;“多小时.out"未生成
    
    >>编译失败
    makefile:149:目标'mall-hour.out'的配方失败
    gmake[1]:***[多小时.out]错误1
    
    
    
    **:145:目标'mall-hour.out'的配方失败 gmake[1]:***生成失败 gmake'
    

    我还附加了我的链接器和编译器搜索路径以及我的项目结构 thusfar。 我基本上制作了一个新的(典型) SYS/BIOS 项目、然后尝试"复制" 2833xGPIOSetup 项目。 我必须从头开始、因为我删除了原始项目。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您有两个冲突的链接器命令文件 TMS320F28335.cmd 和 F28335.cmd、 这就是您看到"memory range has already been specified (内存范围已指定)"消息的原因。 从链接选项中删除 F28335.cmd 1。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    完美、这似乎解决了问题。 我现在可以毫无问题地参考 GPIO 外设。 谢谢