本帖最后由 cruelfox 于 2019-6-4 21:35 编辑
我新下载安装了 simplelink CC13x2 SDK 2.30 版本,也决定暂时不用 CCS,就命令行解决下问题。进到 examples/nortos/CC1352P1_LAUNCHXL/drivers/pwmled2/gcc 目录,就用里面的 makefile 先试一下呢。
); background-position:initial initial; background-repeat:initial initial; display:block; left:0px; top:-15px">
好象是第一行这里路径就有问题,imports.mak 文件找不到。于是我将它编辑一下,改为用相对路径。顺便看一下 imports.mak 文件里面是什么内容
); background-position:initial initial; background-repeat:initial initial; display:block; left:0px; top:-15px">
原来是一些变量设置。我就把 GCC_ARMCOMPILER 修改为本机上的路径。
然后 make. 几个 obj 都编译出来了(还省事嘛),但是链接就出错了,如这样的:
e:/arm-2014q3/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/bin/ld.exe: error: pwmled2.out uses VFP register arguments, e:/arm-2014q3/arm-none-eabi/lib\libc_s.a(lib_a-malloc.o) does not
这是 LIBC 的硬件浮点版本选择出现了问题。看看 makefile 里面怎么写的,在 LFFLAGS 上面指定了
"-L$(GCC_ARMCOMPILER)/arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard" \
"-L$(GCC_ARMCOMPILER)/arm-none-eabi/lib" \
这两行,也许是 CCS 带的 GCC 工具链的目录结构,但我机器上的不是这样的,多半问题出在这里。看前面已经有 -mthumb -mfloat-abi=hard 参数,所以不需要再指定库文件目录,于是我将这两行删除,就顺利链接了。
用 nm 工具看一下ELF文件的符号表,注意到这里
00002de0 T NOROM_ChipInfo_GetPackageType
00002df8 T NOROM_ChipInfo_GetChipFamily
00002e14 T NOROM_ChipInfo_GetChipType
00002e64 T NOROM_ChipInfo_GetHwRevision
00002ea8 T NOROM_ThisLibraryIsFor_CC13x2_CC26x2_HwRev1x_HaltIfViolated
看来现在 SDK 生成的代码就是给芯片 Rev 1.x 使用的,应该没问题了吧。
烧写到板子还得用 Win7 的电脑。我用 SmartRF Flash Programmer 2 来下载刚才编译得到的 ELF 文件:pwmled2.out
然后——板子上的两个LED亮了,并出现呼吸灯的效果,PWM工作了,表明编译正常。
此内容由EEWORLD论坛网友cruelfox原创,如需转载或用于商业用途需征得作者同意并注明出处