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.

[参考译文] LAUNCHXL-CC3235SF:将 CC3200移植到 CC3235SF

Guru**** 1956055 points
Other Parts Discussed in Thread: CC3235SF, CC3200, SYSCONFIG, CC3235MODSF
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1020263/launchxl-cc3235sf-porting-cc3200-to-cc3235sf

器件型号:LAUNCHXL-CC3235SF
主题中讨论的其他器件:CC3235SFCC3200SysConfigCC3235MODSF

尊敬的先生:

  我需要将 CC3200的项目移植到 CC3235SF。

1. CC3200已从示例"wlan_ap"修改。  我应该从哪一个 CC3235SF 示例开始?

GPIO 的代码、例如:

MAP_GPIOPinWrite (GPIOA0_BASE、GPIO_PIN_7、GPIO_PIN_7:0);// 将 PIN52 (GPIO7)设置为高电平

我是否仍可以为 CC3235SF 中的同一引脚使用"GPIO7"?

 CC3235SF 会是什么?

3. CC3200的以下代码指定 GPIO0中断处理程序:

GPIO_IF_ConfigureNIntEnable (GPIOA0_BASE、GPIO_PIN_0、GPIO_BLE_边缘、
Gpio0IntHndler);

  CC3235SF 会是什么?

4. CC3200的以下代码指定计时器中断处理程序:

Timer_IF_Init (PRCM_TIMERERA0、TIMERERA0_BASE、TIMER_CFG_ONE_SHOT、TIMER_A、 0);
TIMER_IF_IntSetup (TIMERERA0_BASE、TIMER_A、ButtonTimerBaseIntHandler);
Timer_IF_Start (TIMER_RA0_BASE、TIMER_A、2000);

  CC3235SF 会是什么?

感谢你能抽出时间。

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

    您好、Luke、

    您有几个移植选项。 如果您希望使 CC3200应用尽可能相似、可以在  CC32xx SDK (适用于 CC3220和 CC3235)中遵循此迁移指南。 对于 CC3200和 CC3235、driverlib 层是相同的、您可以使用 CC32xx SDK 的 source/ti/devices/cc32xx/driverlib 文件夹中的 driverlib 文件。 器件之间的引脚也相似。

    我认为长期维护的更好选择是更新 TI 驱动程序 API。 这还允许您使用新的配置工具、如 SysConfig。 SDK 中提供了 TI 驱动程序 API 指南。 您可以在此处找到 GPIO 和计时器文档。 要了解有关 SysConfig 和 TI 驱动程序的更多信息、请查看 SimpleLink Academy 实验

    此致、

    Sarah

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

    尊敬的 Sarah:

      感谢您的即时回复。

    是否可以将 CC3235SF CCS 10项目与 TI-RTOS 一起使用 driverlib 层和 sl_compat.h 从 CC3200的"wlan_ap"进行转换?

    这将大大有助于使 CC3235SF 尽快工作。

    我们的第一步是重新使用 CC3200的原始代码。

    然后、我们将按照新的 API 指南在 CC3235SF 中打开新功能。

    感谢你能抽出时间。

    此致、

    Luke

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

    您好、Luke、

    我建议从新的 CC3235项目开始、因为它已经具有指向 CC32xx SDK 的正确链接。 您可以导入空项目(来自 examples/rtos/CC3235SF_LAUNCHXL/drivers 文件夹)、添加 simplelink.a 作为链接库、并从旧应用程序和迁移指南中复制和粘贴源代码。

    此致、

    Sarah

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

    尊敬的 Sarah:

      感谢您的建议。

    我可以成功构建"empty"。

    然后我添加以下行:

    UARTChartPut (UARTA0_BASE、'.');

     

    编译器报告的失败日志如下所示:

    "C:\\ti\\ccs1040\\ccs\\utils\bin\\gmake"-k -j 8 all -O

    编译文件:"../empty.c"
    调用:ARM 编译器
    "c:/ti/ccs1040/ccs/tools/compiler/ti-cgt-arm_20.2.5.LTS/bin/armcl -mv7M4 --code_state=16 --float_support=vfplib -me --include_path="C:/ti/workspace_v10/empty_CC3235SF_LAUNCHXL_tirtos_ccs --include_path="C:/ti/workspace_v10/empty_CC3235SF_LAUNCHXL_tirtos_ccs/MCU /ti/simplelink_cc32xx_sdk_5_20_00_06/source/ti/devices/cc32xx/driverlib /ti/ccs1040/ccs/tools/compiler/ti-cgt-arm_20.2.5.LTS/include +Image"--include_path="C:/ti/simplelink_cc32xx_sdk_5_20_00_06/source /ti/simplelink_cc32xx_sdk_5_20_00_06/source/ti/devices/cc32xx /ti/workspace_v10/empty_CC3235SF_LAUNCHXL_tirtos_ccs/MCU --include_display_subsection="c_definatination="c_definature=/ti/simplelink_cc32xx_sdk_5_20_00_06/source/ti/posix/ccs --inategraine-board_code.combe-ine_display_code.combe.combe.combe.combe-ine_subs=c_decnates=/ti/simplelink_cc32xx_sdk_5_20_00_06/source/ti/devices/cc32xx/inc /ti/workspace_v10/tirtos_builds_cc32xx_release_ccs/Debug/configPkg/compiler.opt --en_code.combuld_code.combe.com_code.combe.com_code.combe.com_code.combe.combe.com_code.combe.combe.com_probe.combe.com_probe.com.c:
    "./empty.c"、第90行:警告#225-D:函数"UARTChartPUT"隐式声明
    已完成构建:"./empty.c"

    构建目标:"empty_CC3235SF_LAUNCHXL_tirtos_ccs.out"
    调用:ARM 链接器
    "c:/ti/ccs1040/ccs/tools/compiler/ti-cgt-arm_20.2.5.LTS/bin/armcl /ti/simplelink_cc32xx_sdk_5_20_00_06/source /ti/workspace_v10/empty_CC3235SF_LAUNCHXL_tirtos_ccs/MCU "-mv7M4 -code_state=16 -float_support=vfplib -me -g -diag_warning=225 -***=255 -diag_warning_off -display_error_number -gen_func_subsections=on -z -mempty_CC3235x_ex_ptrads.iptos"-tos_iptos_ex-tos_un_intrads.tos"-ccs_ov_inf_rtos"-tin/rtos"-tin/r32x_ip_in_ex-tid_in_in_in_infots.tin_in_infot_in/r.cc32x_infot_infot_infot_in/rtos"-tin/r.cc_infot_infot_in_in_in_content/cc_infot_in.in/cc_infot_infot_in.in/r.in/cc_content/cc_infot_in.in/r.in./ti/workspace_v10/tirtos_builds_cc32xx_release_ccs/Debug/configPkg/linker.cmd /syscfg/ti_drivers_config.obj /ti/ccs1040/ccs/tools/compiler/ti-cgt-arm_20.2.5.LTS/lib /ti/simplelink_cc32xx_sdk_5_20_00_06/kernel/tirtos/packages


    未定义的首次引用
    符号
    ------ --------
    UARTChartPut ./empty.obj

    错误#10234-D:未解析的符号仍然存在
    错误#10010:链接期间遇到错误;未构建"empty_CC3235SF_LAUNCHXL_tirtos_ccs.out"

    >>编译失败

    如何正确添加"C:\ti\simplelink_cc32xx_sdk_5_20_00_06\sources\ti\devices\cc32xx\driverlib\uart.c"?

    感谢你能抽出时间。

    此致、

    Luke

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

    您好、Luke、

    empty.c 中是否包含 uart.h?

    Fullscreen
    1
    #include "uart.h"
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    此致、

    Sarah

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

    尊敬的 Sarah:

      是的、包含"UART.h"。  我觉得"UARTChartPUT"应该是"UARTCharPUT"是个错误

    感谢您的善意帮助。

    此致、

    Luke

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

    尊敬的 Sarah:

      感谢您的指导、我可以制作一些从 CC3235SF 空项目开始编译的代码。

     《迁移指南 》附录 I-1中提到以下内容:

    (在 sl_compat.h  simplelink.h 包含之前包含)。

    文件"simplelink.h"是否为"simplelink_cc32xx_sdk_4_40_00_07\source\ti\drivers\net\wii"下的文件?

    我是否应该在  include 目录中添加"simplelink_cc32xx_sdk_4_40_00_07\source\ti\drivers\net\wifi?

    感谢你能抽出时间。

    此致、

    Luke

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

    您好、Luke、

    您可以将 include 路径添加到工程属性中、也可以在源文件中使用以下内容:

    Fullscreen
    1
    2
    #include <ti/drivers/net/wifi/sl_compat.h>
    #include <ti/drivers/net/wifi/simplelink.h>
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    此致、

    Sarah

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

    尊敬的 Sarah:

      在我正在使用 CC3235SF 的板上、GPIO0连接到按钮。  当按下按钮时、它变为高电平、当释放按钮时、它变为低电平。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    PRCMPeripheralClkEnable(PRCM_GPIOA0, PRCM_RUN_MODE_CLK);
    MAP_PinTypeGPIO(PIN_50, PIN_MODE_0, false);
    MAP_GPIODirModeSet(GPIOA0_BASE, GPIO_PIN_0, GPIO_DIR_MODE_IN); // GPIO0, input: pressed=0, released=1
    while (1) {
    sleep(time);
    if(MAP_GPIOPinRead(GPIOA0_BASE, GPIO_PIN_0)==0) {
    UARTCharPut(UARTA0_BASE, '.');
    } else {
    UARTCharPut(UARTA0_BASE, '*');
    }
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    我希望看到'.'。  释放按钮时打印,   按下按钮时打印“*”,就像安装了 CC3200一样。

    在安装了 CC3235SF 电路板的情况下、仅'.' 但是,无论按下或松开按钮,都不会打印“*”。

    您需要建议将 GPIO0设置为输入模式、并在为 CC3235SF 迁移代码时读取其值。

    然后我尝试将"sl_Start (0、0、0);"添加 到代码中、并发现"simplelink.a"应该被添加到项目"empty"中。

    您能帮我演示如何操作吗?

    最后、您是否会指导我如何获取 WiFi 事件、例如"SimpleLinkWlanEventHandler"、 "SimpleLinkNetAppEventHandler"和"SimpleLinkSockEventHandler"

    感谢您的指导。  这对您有很大帮助。

    此致、

    Luke

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

    您好、Luke、

    CC3235上的引脚50也可用于 BLE 共存、因此 LaunchPad 在该引脚上有一个外部下拉电阻(请参阅 LaunchPad 设计文件)。

    您可以通过转至项目属性-> ARM 链接器->文件搜索路径来链接项目中的库。

    事件处理程序特定于应用、但您可以查看 SDK 中的任何演示示示示示例作为参考。 MQTT_CLIENT 演示中的 network_if.c 文件是一个开始的好地方。

    此致、

    Sarah

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

    尊敬的 Sarah:

      感谢您的建议。

    我不使用 CC3235SF LaunchPad。  我正在使用我们自己产品的电路板。  GPIO0 (PIN50)被连接至一个按钮。  GPIO0在该板上安装了 CC3200时按预期工作。  我无法让 GPIO0与安装在同一电路板上的 CC3235SF 搭配使用。  以下 CC3235SF 代码中是否有任何错误?

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    PRCMPeripheralClkEnable(PRCM_GPIOA0, PRCM_RUN_MODE_CLK);
    MAP_PinTypeGPIO(PIN_50, PIN_MODE_0, false);
    MAP_GPIODirModeSet(GPIOA0_BASE, GPIO_PIN_0, GPIO_DIR_MODE_IN); // GPIO0, input: pressed=0, released=1
    while (1) {
    sleep(time);
    if(MAP_GPIOPinRead(GPIOA0_BASE, GPIO_PIN_0)==0) {
    UARTCharPut(UARTA0_BASE, '.');
    } else {
    UARTCharPut(UARTA0_BASE, '*');
    }
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    感谢你能抽出时间。

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

    您好、Luke、

    源代码看起来 不错、尤其是在使用 CC3200的情况下。 您能否使用另一个引脚进行测试? 您能否移除按钮并 直接尝试3.3V 电压?

    此致、

    Sarah

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

    尊敬的 Sarah:

      根据您的建议、我昨天修复了这些问题、并使 CC3235SF 在 AP 模式下成功工作。

    当前 AP 模式在通道1-14的2.4GHz 下运行。

    由于 CC3235SF 支持 WiFi 5 GHz、您是否可以帮助指导我如何启用5 GHz AP 模式?

    它是否可以与2.4GHz 模式共存?

    感谢你能抽出时间。

    此致、

    Luke

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

    您好、Luke、

    您可以使用 sl_WlanSet()设置通道。 请参阅《CC3x20、CC3x3x NWP 编程人员指南》中的第4.4节"接入点"。

    您还可以在 ImageCreator 工程中配置此功能。

    此致、

    Sarah

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

    您好、Luke、

    您是否使用 QFN 或 MOD 封装? 对于 QFN、该5GHz 在最初为 CC3200 QFN 设计的布局中不起作用。

    1月

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

    尊敬的 Sarah:

      我们使用的是 CC3235SFMOD。

    读取 NWP 4.4后、我仍然不知道启用5GHz WiFi。

    您是否会专门列出打开5GHz 的命令?

    非常感谢。

    此致、

    Luke

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

    您好、Luke、

    将 SL_WlanSet 与 SL_WLAN_AP_OPT_CHANNEL 搭配使用。 请参阅该章的通道部分。

    此致、

    Sarah

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

    尊敬的 Sarah:

      借助 CC3200、我可以使用 sl_Send()发送长度高达1460字节的 TCP 数据包。  一切都正常、包括具有 UDMA 的 SPI。

      对于 CC3235、如果 sl_Send()的长度超过396字节、则具有 UDMA 的 SPI 将停止工作。

    我必须将 TCP 数据包拆分为几个长度不超过396字节的数据包,并使用几 个 sl_Send()发送它们。

    _i16 sl_Send_patch (_i16 sd、unsigned char * buf、_i16 len、_i16 flags){ 
      _i16 lenSent = 0;
      _i16 lenSending = 0;
      INT UNIT = 396;
      while (len>unit){
        lenSend=sl_Send (SD、buf、unit、flags);
        if (lenSending >=0){
          lenSent+=lenSending;
          len-= lenSending;
          buf+=lenSending;
        }否则{
          中断;
        }
      }
      if (lenSending >=0){
        lenSend=sl_Send (sd、buf、len、flags);
        if (lenSending >=0){
          lenSent+=lenSending;
          返回长度;
        }
      }
      返回长度;



    此致、

    Luke

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

    您好、Luke、

    实际失败的是什么? 您是否看到返回了错误代码或 API 挂起?

    此致、

    Sarah

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

    尊敬的 Sarah:

      如果 sl_Send ()或 sl_Recv ()的数据包长度为397个或更多字节,则 TCP 数据包本身可以成功传输。  但是、以下代码无法接收任何中断、包括 GPIO 触发的中断和 SPI/UDMA 触发的中断。

      "cc32xxsf_tirtos.cmd"中的堆栈大小从1024字节放大到4096字节:

    --stack_size=4096 /* C stack 也用于 ISR 堆栈*/

    你有什么建议吗?

    感谢你能抽出时间。

    此致、

    Luke

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

    您好、Luke、

    您能否 在 ROV 中调试器件状态? 这是 用户指南 、 TI-RTOS 基础 知识 SimpleLink Academy 中还有两个调试工具部分。

    此外、请确保您已将最新的服务攻击刷写到 CC3235。

    此致、

    Sarah

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

    尊敬的 Sarah:

      是否必须通过 JTAG 引脚使用 ROV?

    目前、我将 CC3235SF  LaunchPad 的 UART_TX/UART_RX 连接到我们自己的板、并在上面安装 CC3235MODSF。

    我能否通过 UART_TX/UART_RX 引脚使用 Code Composer Studio 10进行调试?

    感谢你能抽出时间。

    此致、

    Luke

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

    您好、Luke、

    是的、您需要使用 JTAG 或 SWD 来从 CCS 进行调试并使用 ROV。 不支持通过 UART 进行调试。

    也许您可以在移除其他硬件可靠性后直接在 LaunchPad 上运行代码。

    1月

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

    尊敬的 Jan:

      得到了、感谢您的即时回复。

    此致、

    Luke

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

    尊敬的 Sarah:

      我使用从"迁移指南"复制的"OSI.h"和"OS_POSIX.c"查看了从 CC3200迁移到 CC3235的代码。

    为了与 CC3200 "wlan_ap"示例相同、我是否应添加以下定义?

    在"os_posix.c"中

    #define SL_platform_multi_threaded

    在"Udma_if.c"中、从 "cc3200-sdk\examples\common "复制

    #define USE_TIRTOS

    感谢你能抽出时间。

    此致、

    Luke

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

    您好、Luke、

    我猜是这样。 你试过吗?

    此致、

    Sarah

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

    尊敬的 Sarah:

    我尝试了两种方法:使用和不使用定义。

    这两种方法都起作用。

    但是、我遇到了一个奇怪的情况、即代码在有或没有上述定义的情况下停止运行。

    在我们自己设计的电路板上、FPGA 是 SPI 主设备。 CC3200/CC3235是以 DMA 模式运行的 SPI 从器件。

    SPI DMA Rx 中断预计会定期接收、以处理来自 FPGA 的传入 SPI 数据。

    当 AP 模式设置被改变并且 sl_Stop()被调用后被 SPI DMA Rx 中断时、代码暂停。

    通过进一步调试,根本原因是 sl_Stop()清除 UDMA 时钟选通位,并且由于 没有时钟,下列 UDMASetupTransfer()挂起。  我需要通过添加以下行来修补代码以启用 uDMA 时钟:

    HWREG (ARCM_BASE + APPS_RCM_O_UDMA_CLK_Gating)|= PRCM_RUN_MODE_CLK;

    在 CC3200中,sl_Stop()不清除 UDMA 时钟选通位。

    感谢你能抽出时间。

    此致、

    Luke

x 出现错误。请重试或与管理员联系。