线程中讨论的其它部件: SEGGER, CC2650, TEST, SIMPLELINK-CC13XX-CC26XX-SDK, CC26XXWARE
我正在尝试为基于 CC2630的现有主板(即电子墨水架标签)编写自定义固件。
(是的,我知道它不推荐用于新设计,而是一种现有设计)。
不幸的是,我现在无法创造任何有用的东西。 TI 的文档中没有任何有用的信息。
无论如何,我已经能够使用 contiki-ng 编译和上载 hello-world 示例代码,但我不得不立即评论 Mac 初始化功能,否则将出现 cc2630硬故障。 挖掘一点,似乎硬故障(invstate)发生在 RF_scheduleCmd()关键部分的退出(在 contiki-ng/arch/CU/simplelink-cc13xx-cc26xx/lib/coresdk_cc13xx_cc26xx/source/ti/drivers/RF/RFCC26XX_multimplate.c)中)
实际调用栈类似于(来自 contiki-ng 根目录的路径):
-OS/contiki-main.c:97 netstack_init();
- OS/net/netstack.c:90 NETSTACK_MAC.init();(NETSTACK_MAC 是此芯片的 CSMA_DRIVER)
- OS/Net/Mac/CSMA/CSMA.c:169 ON ();
- OS/Net/Mac/CSMA/CSMA.c:126返回 NETSTACK_RADIUS.ON();(此处为 NETSTACK_RADIO IEEE 模式)
- ARCH/CU/simplelink-cc13xx-cc26xx/RF/IEEE-mode.c:666分辨率= netstack_sched_rx (真)
-ARCH/CU/simplelink-cc13xx-cc26xx/RF/sched.c :512 RF_Cmd Handle TX_handle = RF_scheduleCmd ([...]);
-ARCH/CU/simplelink-cc13xx-cc26xx/lib/coresdk_cc13xx_cc26xx/source/ti/drivers/RF/RFCC26XX_multimple.c :4347 Hwip_restore(key);
最后一次调用 Hwip_restore()时,出现硬故障(当使用 jlink JTAG 和 SEGGER 臭氧调试器逐步执行代码时)。
我已经编写了一个基于简化平台启动板/Cc2650的基本自定义板,使用正确的设备=CC2630瓦尔,禁用了尽可能多的设备(按钮,LED 等)
在我看来,此错误看起来像是错误初始化的 RF,以某种方式生成无效条件或事件(或者中断或异常处理程序的配置不正确?), 但我现在已经知道了如何进一步调试它。我甚至不能确定引起此 HardFault 的确切错误情况(这些异常寄存器位被设置为:HFSR. Forced,UFSR. INVSTATE,SHCSR. PENDSVACT 和 CCR.STCKALIGN)
(FTR,如果我在该调用栈中注释对'RF_scheduleCmd()'的调用,执行不会立即崩溃,但几秒钟后 RPL 尝试发送 DIS 时)。
所以我的问题(已经有人问过,但我没有看到任何有效的回答):是否有一个示例**正在运行**代码激活 CC2630的 RF 部分? 即使不是基于 contiki (我使用它是因为我发现它比 CCS 容易得多,我仍然不知道应该使用哪个“产品”来开始为这个 cc2630编译 hello-world 计划... 这些“旧但仍在生产中”芯片的开发人员文档状态非常令人沮丧;CC2630产品页面上没有实际可用的内容)。
感谢您的任何帮助/提示/建议,
大卫