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.

ucos—ii的移植28335问题

这是ucos移植28335的例程,注释里面说这是编译器特定的,我想知道这下面的定义都是根据什么特定的?为啥我看ucos-ii移植到win32位系统的时候,这些定义也是一样的呢?

  • 您可以看一下编译器指南中的定义,如Table 6-1. TMS320C28x C/C++ Data Types

    TMS320C28x Optimizing C/C++ Compiler v18.1.0.LTS User's Guide

    www.ti.com/.../spru514p.pdf
  • 您说的是103页吗?如果是的话,这上面的char是16bit啊?但是程序当中的char定义成了8bit
  • 这取决于使用的是哪一个版本的编译器,上面的文档是特定于 v18.1.0的
  • 那您可以帮我找一下,char是8bit的编译器手册吗?
  • 您之前说,编译器是集成到CCS上面的一个部分,那就是说只要不换CCS用什么可编程控制器都应该这样写吗?可是我在看书的时候,书上说的是根据硬件去写
  • “那就是说只要不换CCS用什么可编程控制器都应该这样写吗”

    您是指在CCS内更换不同版本的编译器?

    关于compiler编译器的安装和选择,您可以参考下面的链接

    processors.wiki.ti.com/.../Compiler_Installation_and_Selection

    一般在CCS版本内会说明最低要求的compiler版本

    “可是我在看书的时候,书上说的是根据硬件去写”

    能否给出详细说明?谢谢
  • 您好我的问题是这样的:您给我发了一个编译器的指导手册,那里面有数据类型的位数,我理解您的意思是只要CCS不换编译器版本的话,这个数据类型就是固定这样写的,和操作系统具体移植到28335还是2812或者28069上面没关系,纯粹只是和电脑上使用的CCS上面安装的什么编译器有关,
  • 在ucos的书籍上面说这个数据类型应该按照硬件的具体情况改写,我理解的就是在28335上具体有一套数据类型,2812上面也可能有一套数据类型,这两个类型可能一样,也可能不一样,但是程序里面的数据类型定义是取决于芯片是啥样的。不知道我的问题说清楚了没有?

  • 是的,您的理解是正确的

    “只要CCS不换编译器版本的话,这个数据类型就是固定这样写的,”
  • user4739816 说:
    ,我理解的就是在28335上具体有一套数据类型,2812上面也可能有一套数据类型,这两个类型可能一样,也可能不一样,但是程序里面的数据类型定义是取决于芯片是啥样的。

    我的理解是硬件使用的编译器版本,开发工具不同(如IAR/CCS)等数据的定义是可能不同的。

    程序里面的数据类型定义是取决于编译器版本/类型(如ARM Complier/C2000 Complier 等),开发工具不同(如IAR/CCS)。因为CCS的编译器已经根据系列芯片的内部结构做好了其中的数据类型定义

  • 受教了,您的回答对我很有帮助。那还是回到刚才的问题,编译器手册上面写的char 是16bit,例程里面写的是8bit这是因为编译器版本不同?如果我用的编译器版本是18.21的话,我需要把例程里面的char定义修改成INT16吗?

  • 请问您指的例程是哪个例程?编译器版本是多少?

    在C2000上,char : 16 bits,无法直接让编译器强制设置为8bit

    相关讨论可以参考

    e2e.ti.com/.../21671
  • Micrium_TMDSDOCK28335_OS2.zip

    这是网上流行的版本,原始出处我不知道

  • 根据现有信息,我觉得是这样的

    BOOLEAN、INT8U、INT8S、INT16U、INT16S、INT32U、INT32S、FP32、FP64是UCOS源文件使用的数据类型。UCOS-II不使用C语言中的short,int,long等数据类型,因为它们与处理器类型有关。UCOS-II使用的是移植性强的整型数据。

    也就是说UCOS-II中使用BOOLEAN、INT8U、INT8S、INT16U、INT16S、INT32U、INT32S、FP32、FP64数据类型在移植到不同的处理器时,这些数据类型要根据使用的C编译器重新定义。

    您给出的工程使用的是 ti-cgt-c2000_6.4.12

    您可以在下面的链接查找:
    software-dl.ti.com/.../download_archive.htm

    其中:
    char, signed char 16 bits
    unsigned char 16 bits
x 出现错误。请重试或与管理员联系。