F28M36P53…
WIN7 64bit
Code Composer Studio — Version: 6.0.1.00040
板子是自定义的,由于CORTEX-M3侧的UART两根线画错,用了PQ6_GPIO118和PQ7_GPIO119,看到/MWare中有SOFTUART的例子,暂时不想改硬件,想用softuart的例子。
我在M3侧使用了TI/RTOS (CCS的APP CENTER中自动安装的"TI-RTOS for C2000")。
参考controlSUITE 中MWare doc说明文件“F28M36x-FRM-EX-UG.pdf” 19章 Software UART Module
在自己的文件中添加了头文件
#include <utils/softuart.h>
添加了路径"${COM_TI_RTSC_TIRTOSC2000_INSTALL_DIR}/products/MWare_v202a/MWare"
还是出现如下错误:
<Linking>
undefined first referenced
symbol in file
——— —————-
SoftUARTRxTick ./gc09/gc09.obj
SoftUARTTxTimerTick ./gc09/gc09.obj
error #10234-D: unresolved symbols remain error #10010: errors encountered during linking;
"usbserialdevice_F28M36P63C2_CortexM.out" not built
gmake: ***
[usbserialdevice_F28M36P63C2_CortexM.out] Error 1
gmake: Target `all' not remade because of errors.
而且,在“softuart.c”中我发现有一些函数找不到,例如MAP_GPIOPinTypeGPIOInput() 这些带有MAP_前缀的,是我没有包含正确的库吗,还是这个文件不是针对F28M36系列的,但是我在文档初始描述看到了如下描述:
//###########################################################################
// $TI Release: F28M36x Support Library v202 $
// $Release Date: Tue Apr 8 12:36:34 CDT 2014 $
//###########################################################################
我应该如何修改?
其他疑问:
在TI-RTOS开发文档SPRUEX3N(TI-RTOS Kernel User's Guide)中提到如果配置硬件向量中断、cache、timer 必须要用HAL(hardware abstraction layer apis),而不能使用CSL(chip support library),能否提供一个除了GPIO例程外的其他的使用HWI配置中断的例程供参考,或一些详细描述的文档。
(附件是编译错误截图)
谢谢!
junpeng sun:
自己回复已尝试的方法:
将softuart.c softuart.h两个文件拷贝到自己目录下,出现MAP_前缀函数未定义
undefined first referenced
symbol in file
MAP_GPIOIntTypeSet ./gc09/softuart.obj
MAP_GPIOPinIntClear ./gc09/softuart.obj
MAP_GPIOPinIntDisable ./gc09/softuart.obj
MAP_GPIOPinIntEnable ./gc09/softuart.obj
MAP_GPIOPinRead ./gc09/softuart.obj
MAP_GPIOPinTypeGPIOInput ./gc09/softuart.obj
MAP_GPIOPinTypeGPIOOutput ./gc09/softuart.obj
error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "usbserialdevice_F28M36P63C2_CortexM.out" not built
去掉MAP_前缀是可以编译通过的,运行估计有问题,这些底层函数(像GPIOPinIntClear())是不是所谓的CSL(chip support library),和TI-RTOS一起使用,中断是要用HAL来配置的么,有知道的的请给予帮助。
F28M36P53…
WIN7 64bit
Code Composer Studio — Version: 6.0.1.00040
板子是自定义的,由于CORTEX-M3侧的UART两根线画错,用了PQ6_GPIO118和PQ7_GPIO119,看到/MWare中有SOFTUART的例子,暂时不想改硬件,想用softuart的例子。
我在M3侧使用了TI/RTOS (CCS的APP CENTER中自动安装的"TI-RTOS for C2000")。
参考controlSUITE 中MWare doc说明文件“F28M36x-FRM-EX-UG.pdf” 19章 Software UART Module
在自己的文件中添加了头文件
#include <utils/softuart.h>
添加了路径"${COM_TI_RTSC_TIRTOSC2000_INSTALL_DIR}/products/MWare_v202a/MWare"
还是出现如下错误:
<Linking>
undefined first referenced
symbol in file
——— —————-
SoftUARTRxTick ./gc09/gc09.obj
SoftUARTTxTimerTick ./gc09/gc09.obj
error #10234-D: unresolved symbols remain error #10010: errors encountered during linking;
"usbserialdevice_F28M36P63C2_CortexM.out" not built
gmake: ***
[usbserialdevice_F28M36P63C2_CortexM.out] Error 1
gmake: Target `all' not remade because of errors.
而且,在“softuart.c”中我发现有一些函数找不到,例如MAP_GPIOPinTypeGPIOInput() 这些带有MAP_前缀的,是我没有包含正确的库吗,还是这个文件不是针对F28M36系列的,但是我在文档初始描述看到了如下描述:
//###########################################################################
// $TI Release: F28M36x Support Library v202 $
// $Release Date: Tue Apr 8 12:36:34 CDT 2014 $
//###########################################################################
我应该如何修改?
其他疑问:
在TI-RTOS开发文档SPRUEX3N(TI-RTOS Kernel User's Guide)中提到如果配置硬件向量中断、cache、timer 必须要用HAL(hardware abstraction layer apis),而不能使用CSL(chip support library),能否提供一个除了GPIO例程外的其他的使用HWI配置中断的例程供参考,或一些详细描述的文档。
(附件是编译错误截图)
谢谢!
junpeng sun:
还是自己回答吧,已经调好多天了,忘记完帖
首先将两个函数softuart.c softuart.h 加入自己的工程文件中
修改MAP_前缀的所有函数(编译会报错,不用每个都自己去找),用现有的TI-RTOS中GPIO.C文件中的函数替代。
GPIO中断 使用TI-RTOS的例程 …callback 函数
定时器遵循文件建议,采用HAL层,在.CFG文件中配置两个TIMER(TX 和 RX 各一个),停止和启动、重载等函数统一使用HAL层提供的timer函数
调试时,不能在DEBUG中跑,因为速度跟不上,SOFTUART发送没问题,接收的信息在system_printf()中会有问题,所以要直接脱离仿真器跑,现在我用了9600bps通信收发正常,再高没有试,如果要试直接调节TIMER定时器就行了。
现在有个问题,没有找到哪个文档说明timer和HWI还有GPIO中断在TI-RTOS中的优先级该如何配置,有谁知道的吗?