3447|2

1377

帖子

2

TA的资源

五彩晶圆(初级)

楼主
 

【CC1352P测评】继续捣鼓SDK例子 [复制链接]

本帖最后由 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原创,如需转载或用于商业用途需征得作者同意并注明出处

此帖出自RF/无线论坛
点赞 关注(1)
 

回复
举报

1377

帖子

2

TA的资源

五彩晶圆(初级)

沙发
 

注意这个 makefile 里面写的 LDFLAGS

LFLAGS = -Wl,-T,../gcc/CC1352P1_LAUNCHXL_NoRTOS.lds \
    "-Wl,-Map,$(NAME).map" \
    "-L$(SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR)/source" \
    -l:ti/display/lib/display.am4fg \
    -l:ti/grlib/lib/gcc/m4f/grlib.a \
    -l:third_party/spiffs/lib/gcc/m4f/spiffs_cc26xx.a \
    -l:ti/drivers/rf/lib/rf_multiMode_cc13x2_v1.am4fg \
    -l:ti/drivers/lib/drivers_cc13x2_v1.am4fg \
    -eresetISR \
    "-L$(SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR)/kernel/nortos" \
    -l:lib/nortos_cc13x2_v1.am4fg \
    -l:ti/devices/cc13x2_cc26x2_v1/driverlib/bin/gcc/driverlib.lib \
    -march=armv7e-m \
    -mthumb \
    -mfloat-abi=hard \
    -mfpu=fpv4-sp-d16 \

用了好些个 -l 参数,指定的是库文件。在我 make 的过程中,并没有出现对库进行编译的过程。我到 SDK 的 source/ti 目录下查看,发现这些文件已经随着 SDK 发布了,也就是 SDK 提供了源代码,同时也提供了编译好的库,默认情况是直接用 TI 提供的二进制库来编译工程的。 这和我熟悉的 STM32 的软件开发不同,后者是每个工程都从源代码引用库文件的。

此帖出自RF/无线论坛
 
 

回复

1377

帖子

2

TA的资源

五彩晶圆(初级)

板凳
 

用同样的方式 (小改一下 makefile) 编译成功了 nortos 的 rfEasylinkRx 和 rfEasyllinkTx 两个工程。分别下载到两块板子里面,就看到它们通信起来了(RX 程序收到 TX 程序发送的数据包时LED闪烁)。

此帖出自RF/无线论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表