主题中讨论的其他器件:UNIFLASH、 CC3220S、 CC3120
您好!
因此、我一直按照 http://www.ti.com/lit/ug/tidue59/tidue59.pdf (第28-30页)上的说明在 CCS 中构建项目。 但我只得到了一组错误。 我的所有工程都已导入 CCS 工作区、并且属性已根据说明进行更改。 我已附上我的所有错误的日志。 如何在 CCS 中启动并运行该项目而不会出现任何问题?
e2e.ti.com/.../cc2640-build-errors.txt
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.
您好!
因此、我一直按照 http://www.ti.com/lit/ug/tidue59/tidue59.pdf (第28-30页)上的说明在 CCS 中构建项目。 但我只得到了一组错误。 我的所有工程都已导入 CCS 工作区、并且属性已根据说明进行更改。 我已附上我的所有错误的日志。 如何在 CCS 中启动并运行该项目而不会出现任何问题?
e2e.ti.com/.../cc2640-build-errors.txt
我安装了以下 SDK 版本。 是否可以将项目更新到这些 SDK 版本?
simplelink_cc32xx_sdk_2_20_00_10
simplelink_cc2640r2_sdk_2_20_00_49
simplelink_sdk_ble_plugin_1_40_00_42
sail _1_20_00_02
在导入到工作区之前、WiFi_Doorlock 项目位于 SDK 中。 它引用了上面列出的 SDK 版本。
如何检查 CDN 供应商文件夹中的所有文件是否正确链接到项目?
尊敬的 Jack:
是的、应该可以将工程更新到这些 SDK 版本、但我们目前不打算执行和发布这种操作。 由于该设计的软件是在最新的 SimpleLink 器件 SDK 之前发布的、因此该设计所基于的 SDK 版本较旧。 请下载之前的 SimpleLink CC32XX 和 CC2640R2 SDK、以开箱即用构建和运行示例。
如果您在 OTA 工程中打开 CdnVendors 文件夹、其外观如下所示、您应该会觉得不错:
如果文件上有警告标记、则它们未正确链接。
此致、
本·M
谢谢。 事实证明、由于我的路径 ws 路径有一个空白空间、我不得不将其删除。 我也不应该将 OTA 和 Simplelink 项目"复制"到 ws 中。 我现在有几个关于 Uniflash 的问题。
根据第32页,它说我必须包括一些用户文件。 对于 eclipsecert.der,我在 SSL Scanner 上搜索了“eclipse.com”。 但是、我不确定从下面的屏幕截图下载哪个文件。 您能告诉我要下载哪个文件吗?
digicertca.der 也是如此(我搜索的是 github.com)。 您能告诉我应该下载哪个文件吗?
我还注意到 otauser.h 要求:
#define OTA_SERVER_ROOT_CA_CERT " DigCert_High_Assurance_CA.der"
但是,第32页的表没有为此指定任何用户文件。 对此、我应该怎么做?
最后、这是我的 Uniflash 用户文件页面的外观。 您能验证这是否到目前为止看起来是正确的吗?
尊敬的 Jack:
您将需要下载每个链(底部一个)的根证书、因为这是设备在建立 TLS 连接时验证服务器发送的链所需的。
我认为目前有效的 Eclipse 认证序列号应为 :44 af b0 80 d6 A3 27 BA 89 30 39 86 2e F8 40 6B
DigiCert 序列号应为 :02 AC 5c 26 6a 0b 40 9b 8f 0b 79 f2 ae 46 25 77
OTA_SERVER_ROOT_CA_CERT 定义仅需更新、以匹配在将 Github 根 CA 编程到器件的文件系统时为其指定的名称。 这就是器件知道如何将其用于该插座的方法。 例如、我将文件放在顶层目录中(在这里您似乎拥有虚拟证书文件)、并为其命名为"digicertca.der"、因此我在 otauser.h 文件中的定义如下所示:
#define OTA_SERVER_ROOT_CA_CERT " digicertca.der"
是的、到目前为止、您的 UniFlash 用户文件看起来是正确的。 添加 Eclipse 物联网根 CA 和 Github 服务器根 CA 后、应进行设置。
此致、
本·M
谢谢你。 我有几个关于生产的问题。
从第32页开始:"虚拟证书和密钥只用于演示和开发目的。 开发人员有责任在需要时获取用于代码签名和 SSL/TLS 的实际证书和密钥。"
我应该从何处获得这些实际证书? 建议在什么地方获得这些证书+如何获得?
这些证书是否有我必须担心的费用?
我还在第37页的底部看到这一点:"演示不支持相互身份验证、因为没有为 Eclipse 代理配置机制来标识 CC3220S 器件。 在使用实际服务器进行生产时、用户可以添加相互身份验证。"
您能解释一下如何添加相互身份验证吗?
最后,在第37页的最下面:"在开发过程中使用证书集合时,必须禁用证书目录验证步骤,因为它不包括所有实际的受信任根证书颁发机构。 对于生产系统、必须使用生产证书目录、TI 建议启用证书目录验证和域名验证。"
您能否解释如何启用证书目录验证和域名验证?
谢谢。 我还有几个相关的问题
对于相互身份验证、对于包含相互身份验证的门锁示例、建议使用哪些服务器?
为此:"在开发过程中使用证书集合时,必须禁用证书目录验证步骤,因为它不包括所有实际的受信任根证书颁发机构。"
我需要在 Uniflash 中添加哪些缺失的文件?
我需要在 CCS 中添加什么代码?
对于 下面显示的 MQTT_ClientCtx 端口号选项、我是否必须根据不同的服务器更改这些选项-或者是否应该将它们保留为原样?
尊敬的 Jack:
我们的终端不建议使用什么服务来代替 Eclipse 物联网。 我们使用 eclipse 物联网来演示该设计、因为它易于启动和测试。 如果您正在寻找实际产品的替代产品、我建议您查看我们的云合作伙伴之一、我们为其提供了 SDK 插件。 您可以使用 SDK 插件快速启动并运行云服务。
如果要在套接字连接上使用目录验证、则需要移至生产目录(而不是游乐场目录)。 但是、一旦您进入生产目录、您就无法再使用虚拟证书链对 MCU 映像进行签名。 为此、您必须拥有自己的代码签名证书。
建立并运行生产目录后、您只需从 MQTT_ClientCtx 中删除 MQTT_DEV_NETCONN_OPT_SKIP_CERTIFICATE_catalog_verification 标志、设备便可在建立连接时执行此步骤。
这些端口号通常保留用于 MQTT。 您不可能需要更改它们。
最棒的
本·M
门锁示例是否使用 IPv4或 IPv6? 如果使用 IPv4、如何将其更改为使用 IPv6?
尊敬的 Jack:
门锁示例使用 IPv4。 有关 IPv6地址的信息、请参阅 CC3120/CC3220网络处理器指南的第4.3.2节-
最棒的
本·M
谢谢 Benjamin Moore。 我看到门锁示例根据 www.ti.com/.../tidue59.pdf 的第2.4.8.2.2节使用"简单网络时间协议"。 如何从该处获取当前日期和时间以用于我自己的目的(我可以使用什么代码)?
尊敬的 Jack:
器件使用 SNTP 检索的当前日期和时间用于设置器件 RTC。 可以使用 simplelink 主机驱动程序 API 中的 sl_DeviceGet ()函数读回日期和时间。 请参阅网络处理器编程人员指南的第2.7节-
最棒的
本·M
我正在尝试测试门锁示例、但我不知道如何访问 Wifi Starter Pro 应用程序上的"MQTT 工具"页面。 如何访问此页面?
尊敬的 Jack:
这不是 SimpleLink Wi-Fi Starter Pro 移动应用程序的一部分。 它是单独的第三方 MQTT 客户端应用程序。 这个只是一个示例。 可以连接至 eclipse 代理的任何 MQTT 客户端都应正常工作。
如果您使用的是 Android 智能手机、我建议您查看 MyMQTT。 它可让您保存主题+消息组合、从而轻松尝试不同的功能。
最棒的
本·M
我尝试测试了 OTA。 但是、它不起作用。
我在 TeraTerm 中收到此消息:
我在 otauser.h 中的代码是:
/* Github 供应商信息*/ #define OTA_VENDOR_ROOT_DIR "/repos/gearsmotion789/OTA #define OTA_VENDOR_TOKEN "齿轮烟雾789"
我的 GitHub 报告如下所示:
1.如何解决这个问题?
2. OTA 失败后、Doorlock 程序似乎也不再工作。 我尝试发布了另一条消息、但 CC3220没有对此做出响应。 如何解决此问题?
Benjamin Moore (3729619)我已启用 SL_ENABLE_OTA_DEBUG_TRACES。 以下是调试消息:
尊敬的 Jack:
如果您查看日志中的输出,则在解析 Github 返回的文件名元数据时,该过程似乎会失败。 您上载的文件在元数据中按预期存在、但从缓冲区提取文件时似乎出错。
我认为这与返回缓冲区的长度有关。 它可能比器件预期的最大大小更长、这就是它无法正确识别文件名的原因。
在 OtaJson.c 中将#define MAX_metadata_filename 设置为什么?
谢谢、
本·M
返回到 OTA 失败时、当我删除 LOOP_FOREVER 语句时、程序仍会继续运行。 但是、当我再次尝试进行 OTA 时、我只能得到以下内容。 不会发生任何情况。 如何解决此问题?
此外、我注意到、当我复位 CC3220S launchpad 然后检查状态时、它会复位回"解锁状态"。 如何使其保存复位后的最后一个状态?
最后、我注意到程序中的时区设置不正确。 我不住在"中央时区"。 我可以在代码中的何处更改此参数?
对于1、您知道"云 OTA"示例中的代码允许 OTA 复位吗? 通过这种方式、我可以将该代码用于锁定示例代码。