主题中讨论的其他器件:CC3235SF
我正在尝试连接到我自己的 http 服务器、但我面临两个问题。 (使用 httpclient_debug.a)
我 的 URL 很长(大约1KB)、lib 的最大值为100b。 如何重建库(我需要步骤......)
2. 我在重建库之前尝试连接服务器、位为-688而不 是-3005。 这意味着什么?
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 服务器、但我面临两个问题。 (使用 httpclient_debug.a)
我 的 URL 很长(大约1KB)、lib 的最大值为100b。 如何重建库(我需要步骤......)
2. 我在重建库之前尝试连接服务器、位为-688而不 是-3005。 这意味着什么?
您好、Frank、
以下是从命令行重建 http 库的步骤:
@$(XDC) XDCARGS="$(XDCARGS)" XDCPATH="$(XDCPATH)" ALL -PR。 ->@$(XDC) XDCARGS="$(XDCARGS)" XDCPATH="$(XDCPATH)" ALL -P http @$(XDC) XDCARGS="$(XDCCARGS)" XDCPATH="$(XDCPATH)" Clean -PR。 ->@$(XDC) XDCARGS="$(XDCARGS)" XDCPATH="$(XDCPATH)" All -P http
此外、错误代码-688对应 于 SL_ERROR_BSD_ESEC_ASn_NO_Pigner_E、这意味着 CC3235无法验证服务器的证书链。 请验证服务器证书链是否正确。
此致、
Paul
我更改了 makefile、如下所示
第49行:
@$(XDC) XDCARGS="$(XDCARGS)" XDCPATH="$(XDCPATH)" ALL -PR。 ->@$(XDC) XDCARGS="$(XDCARGS)" XDCPATH="$(XDCPATH)" All -P http
第53行:
@$(XDC) XDCARGS="$(XDCARGS)" XDCPATH="$(XDCPATH)" Clean -PR。 ->@$(XDC) XDCARGS="$(XDCARGS)" XDCPATH="$(XDCPATH)" All -P http
但是、当我运行 cmd (C:\ti\xdctools_3_61_00_16_core\gmake clean)和(C:\ti\xdctools_3_61_00_16_core\gmake)时、
我得到:
清洁套件...
C:/Users/Frank/AppData/Local/Temp/make39988-2.sh:1:C:/Users/Frank/AppData/Local/Temp/make39988-2.sh:语法错误:"("意外
C:/ti/xdctools_3_61_00_16_core 包\XDC\BLD\XDC_TOPL.MAK:267:警告:没有要构建的内容;在-P[RRD]之后命名的目录不包含任何可构建的软件包
-P
PR
PR
PD
您好、Frank、
很抱歉、我的解释不清楚。 我打算替换以下行:
@ $(XDC) XDCARGS="$(XDCARGS)"XDCPATH="$(XDCPATH)"all -PR .
使用
@ $(XDC) XDCARGS="$(XDCARGS)"XDCPATH="$(XDCPATH)"all -P http
同样、替换:
@ $(XDC) XDCARGS="$(XDCARGS)"XDCPATH="$(XDCPATH)"clean -PR .
使用
@ $(XDC) XDCARGS="$(XDCARGS)"XDCPATH="$(XDCPATH)"clean -P http
基本而言,您在这里所做的就是告诉它只构建 http 目录(-P http)中找到的包,而不是所有子目录(-PR .)中找到的所有包。
此致、
Paul
我将其更改为( @ $(XDC) XDCARGS="$(XDCARGS)" XDCPATH="$(XDCPATH)" all -P http) and (@ $(XDC) XDCARGS="$(XDCARGS)" XDCPATH="$(XDCPATH)" clean -P http).
但仍会收到一些错误消息。(如下所示)
尝试使其正常工作时,我运行了 cmd brforE 编辑程序,它是否会导致此消息?
C:\ti\simplelink_cc32xx_sdk_4_10_00_07\source\ti\net>C:\ti\xdctools_3_61_00_16_core\gmake clean
清洁套件...
清洁:2020年7月7日13:38:25...
=========== 清理[http/]=====
正在制作 package.mak (由于 package.bld)以清洁...
JS:"c:/ti/simplelink_cc32xx_sdk_4_10_00_07/kernel/tirtos/packages/gnu/targets/arm/ITarget.xs、第364行:错误:找不到目录"c:/ti/ccs1000/ccs/tools/compiler/gcc-arm-none-eabi-9-2019-q4-major-win32/bin。 确保在"C:/ti/simplelink_cc32xx_sdk_4_10_00_07/source/ti/net/ns.bld "中正确设置 M4目标的 rootdir。
"C:/ti/simplelink_cc32xx_sdk_4_10_00_07/kernel/tirtos/packages/gnu/targets/arm/_utils.xs "、第31行
"C:/ti/simplelink_cc32xx_sdk_4_10_00_07/kernel/tirtos/packages/gnu/targets/arm/ITarget.xs、第184行
gmake[1]:***删除文件'package.mak
正在制作 package.mak (由于 package.bld)以清洁...
JS:"c:/ti/simplelink_cc32xx_sdk_4_10_00_07/kernel/tirtos/packages/gnu/targets/arm/ITarget.xs、第364行:错误:找不到目录"c:/ti/ccs1000/ccs/tools/compiler/gcc-arm-none-eabi-9-2019-q4-major-win32/bin。 确保在"C:/ti/simplelink_cc32xx_sdk_4_10_00_07/source/ti/net/ns.bld "中正确设置 M4目标的 rootdir。
"C:/ti/simplelink_cc32xx_sdk_4_10_00_07/kernel/tirtos/packages/gnu/targets/arm/_utils.xs "、第31行
"C:/ti/simplelink_cc32xx_sdk_4_10_00_07/kernel/tirtos/packages/gnu/targets/arm/ITarget.xs、第184行
gmake[1]:***删除文件'package.mak
清洁完成:2020年7月7日13:38:29日星期二。
C:\ti\simplelink_cc32xx_sdk_4_10_00_07\source\ti\net>C:\ti\xdctools_3_61_00_16_core\gmake
正在构建软件包...
全部:Tue Jul 713:38:412020...
=========== .interfaces [http/]=====
正在制作 package.mak (由于 package.bld)...
JS:"c:/ti/simplelink_cc32xx_sdk_4_10_00_07/kernel/tirtos/packages/gnu/targets/arm/ITarget.xs、第364行:错误:找不到目录"c:/ti/ccs1000/ccs/tools/compiler/gcc-arm-none-eabi-9-2019-q4-major-win32/bin。 确保在"C:/ti/simplelink_cc32xx_sdk_4_10_00_07/source/ti/net/ns.bld "中正确设置 M4目标的 rootdir。
"C:/ti/simplelink_cc32xx_sdk_4_10_00_07/kernel/tirtos/packages/gnu/targets/arm/_utils.xs "、第31行
"C:/ti/simplelink_cc32xx_sdk_4_10_00_07/kernel/tirtos/packages/gnu/targets/arm/ITarget.xs、第184行
gmake[1]:***删除文件'package.mak
gmake[1]:***没有规则使目标'package.mak '成为".interfaces'所需的目标'package.mak '。 停下。
xdctools_3_61_00_16_core\gmake.exe:***[c:/ti/xdctools_3_61_00_16_core 包\XDC\Bld\XDC_top.mak:389:HTTP/、.interfaces]错误2.
gmake:***[makefile:49:all]错误2.
您好、Frank、
CC32xx 4.10.00.07 SDK 要求 在 CCS 编译器目录中安装 GCC ARM 编译器版本 gcc-arm-none-eabi-9-2019-Q4-Major。 CCS 10.0.0不随此版本的 GCC 编译器一起提供。 您需要手动将此 GCC 版本安装到 CCS 10.0.0编译器目录中。
请查看位于 CC32xx SDK 根目录中的 imports.mak 文件。 此文件定义了 SDK 用于查找其使用的每个工具和编译器的搜索路径。 请确保按照我在上面所述安装了 GCC 编译器、以匹配在 imports.mak 中可以看到的默认搜索路径。
此致、
Paul
尊敬的 Paul:
我按照您的步骤成功地重建了库、但我仍然对 我构建的库有一些奇怪的行为。
我可以通过旧库连接 http 服务器、并通过 POST 和 Get 函数返回一些消息。
但是、如果使用新的 lib I Build、它将在调用 HttpClient_connect()之后运行到一个 while 循环函数(faultISR ()、startup_cc32xx_ccs.c 中的第193行)中。
最奇怪的是、它在 Get 函数处运行得非常完美。 但是在调用 HttpClient_connect()时,POST 和 Get 之间没有任何不同。
我尝试按如下所示的类型构建库、所有库都处于相同的情况。
1.更改 CCS_ARMCOMPILER ?= imports.mak 中的 c:/ti/ccs1000/ccs/tools/compiler/ti-cgt-arm_20.2.0.LTS
更改为 CCS_ARMCOMPILER ?= c:/ti/ccs1000/ccs/tools/compiler/ti-cgt-arm_20.2.1.LTS
2. 更改 IAR_ARMCOMPILER ?= c:/Program Files (x86)/IAR Systems/Embedded Workbench 8.4/ARM in imports.mak (我拥有的 IAR 版本为8.3)
更改为 IAR_ARMCOMPILER ?= c:/Program Files (x86)/IAR Systems/Embedded Workbench 8.3/ARM
3. 更改两项1. 和2. 在 Imports.mak 中
4. 使用原始 进口产品.mak
5. 如您所说,使用 makefile withch 会发生变化
6. 使用原始 makefile
您好、Frank、
我很高兴您能够重建库!
我在我的末尾从 SDK 重建了默认的 HTTP 库、它看起来工作正常。 您是否对 HTTP 源代码进行了任何更改? 如果是、您确切修改了什么?
您在原始帖子中也提到您无法连接到 HTTP 服务器、并且收到错误代码-688。 但是,在上一次答复中,您提到能够成功连接到服务器。 您是否能够解决您遇到的-688错误代码问题?
此致、
Paul
尊敬的 Paul:
我仅在 httpclient.h 中将 HttpClient_domain_BUFLEN 从100更改为2048
我在 http 客户端上有3个步骤:
1. 连接到服务器 A,请求,断开连接,销毁
2. 连接到服务器 A,执行 POST 请求,断开连接,销毁
3. 连接到服务器 B,请求,断开连接,销毁(服务器 B 的 URL 长度>1KB 和<2KB)
使用原始库时、在步骤3中会发生错误-688。 第1步和第2步运行良好。
但是、当我使用新库(HttpClient_domain_BUFLEN 更改为2048)时、步骤1的运行仍然正常。
在调用 HttpClient_connect()时,步骤2将运行到 while 循环函数(faultISR (),startup_cc32xx_ccs.c 中的第193行)中;
这是一件奇怪的事情、即使我跳过步骤1、我仍然无法连接到服务器 A。使用 原始库时运行良好、甚至跳过步骤1。
由于服务器 B 从第2步开始、我无法尝试 setp 3。
我正在运行相同的代码、唯一的区别是 lib (我在更改 lib 后重新编译整个项目)。
顺便说一下、我必须更改 SL 线程的堆栈大小?
pthread_attr_init (&pthreadAttrs); // sl 线程 priParam.sched_priority = 1; status = pthread_attr_setschedparam (&pthreadAttrs、&priParam); status = pthread_attr_setstacksize (&pthreadAttrs、2048); status = pthread_create (&threadArray[df_sl_thread]、&pthreadAttrs、sl_Task、NULL); // AWS 线程 priParam.sched_priority = 1; status = pthread_attr_setschedparam (&pthreadAttrs、¶m); status = pthread_attr_setstacksize (&pracks); //3328);将 HttpClient_domain_BUFLEN 从100更改为2048 状态= pthread_create (&threadArray[df_aws_thread]、&pthreadAttrs、awsThreadFxn、NULL);
您好、Frank、
感谢您的设置说明。
我认为您不需要更改 sl_task 的栈大小、因为该线程只处理从 NWP 发送的异步事件。 我猜、当您调用 HttpClient_connect 时、它无法为增加的缓冲区大小分配足够的内存、这就是您看到硬故障的原因。 增大 AWS 线程的堆栈大小是否无法解决此问题?
至于您看到的原始错误 SL_ERROR_BSD_ESEC_ASn_NO_Pigner_E (-688)表示无法验证证书链中的证书、因为编程到文件系统的 CA 不是签署该链的 CA。 您为服务器 B 的 CC3235SF 提供了什么根 CA 证书?
要查找希望通过器件验证证书的根 CA 的通用名、可以将 SL_SSL_notification_wrong_root_CA 案例添加到套接字事件处理程序中。 发生此事件时,可以在 SocketNameEvent.EventData.extraInfo 中找到该名称。
此致、
Paul