工具与软件:
正在尝试使用 EDDSA.h 驱动程序来验证签名、但是"message"是一个存储在外部闪存上的文件、由于此文件太大而无法存储在 RAM 缓冲区中、因此需要分块读取此文件。 是否有办法单独执行哈希运算、然后将其提供给驱动程序、而不是指向预哈希运算消息的指针? 我找到了 但它已经3年了。 是否有驱动程序更新、链接的参考的有效示例、或者至少有一项保证、说明我自己应该仍然正常工作?
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.
工具与软件:
正在尝试使用 EDDSA.h 驱动程序来验证签名、但是"message"是一个存储在外部闪存上的文件、由于此文件太大而无法存储在 RAM 缓冲区中、因此需要分块读取此文件。 是否有办法单独执行哈希运算、然后将其提供给驱动程序、而不是指向预哈希运算消息的指针? 我找到了 但它已经3年了。 是否有驱动程序更新、链接的参考的有效示例、或者至少有一项保证、说明我自己应该仍然正常工作?
我还有一个新的附加问题...
在等待相关反馈的同时、我深入研究了 EdDSA 规范、并开始尝试 对驱动程序进行稍微简单的修改、以开始使用、尝试实现 Ed25519ph。 然后我找到了 这是克莱门特提出的类似建议。
然而、在进行这些修改后、在构建项目时似乎并未实际使用我的代码。 我只在哪里添加了头文件、甚至试图从 SDK 中删除源代码文件、但它仍然运行现有版本的函数、而不是我更改后的函数。 接下来我尝试更改 EDDSA_VERIFY ()和 EDDSA_runVerifyFSM ()函数的名称,以确保 它是我被调用的,然后我甚至无法构建项目,因为链接器错误;不是在这些函数上,而是在名称没有更改的所有其他函数上,因为现在它实际上在使用我的文件,它看到所有预编译函数与符号库有冲突:
#10056符号"EDDSA_INIT"重新定义:首先在".DNS"中定义/Drivers/EdDSA/EDDSACC26X2.o;在"C:/ti/simplelink_cc13xx_cc26xx_sdk_7_10_01_24/source/ti/drivers/lib/ticlang/m4f/drivers_cc26x2.a 中重新定义 "
所以我的问题是:如何告知项目不要使用库的预编译版本? 使用较旧的编译器和较早版本的 SDK 时、就像将源文件从 SDK 复制到本地工程、在本地工程中更改和编译一样简单、如中建议的那样 . 这显然不再起作用了、那么我现在该怎么做呢?
(如果你从其他地方找到它、我会分享这个信息、但我确实在使用7.10版本的 SDK。 但是、我在此线程的标题中显然输入了错误的处理器、因为我们实际上是在使用 CC2652R1F 和 CC2652RB。)
Chris、您好!
对于您的新问题、我将看到 Clement 是否可以在此处提供一些额外的反馈来帮助您。
-通常,如果我们想修改一个库文件,我们会把它拖到本地项目中,并告诉项目引用本地版本,而不是这里的库版本,从我可以告诉你已经在做这件事,但收到了错误。 我们可以尝试在此处修改库项目本身(*制作原始内容的副本以以防万一地替换)。
谢谢!
Alex F
大家好、Alex 和 Chris、
阅读你的交换,我相信你应该首先确保项目是用修改的驱动程序文件建立的。
除非以不同的配置、否则工程将使用预编译/编译的库进行构建-修改 EdDSA 代码后、肯定没有重建这些库。
然后、您有两个选择(我个人更喜欢第一个):
-选项1 :复制项目中修改的文件
-选项2:按此处所述重新编译库: https://software-dl.ti.com/simplelink/esd/simplelink_cc13xx_cc26xx_sdk/7.41.00.17/exports/docs/simplelink_mcu_sdk/Users_Guide .html#rebuild-the-libraries
我希望这将有所帮助、
然后、您有两个选择(我个人更喜欢第一个):
-选项1 :复制项目中修改的文件
[报价]如前所述、如果我在项目中复制修改后的文件、会发生以下两件事之一、具体取决于修改的方式:1)我不更改修改后的函数的名称、项目生成、但在项目运行时、显然修改后的版本不是被调用的版本、因为它们不执行我修改后的操作、 或2)我更改了修改后的函数的名称、以确保它是唯一被调用的函数、然后由于上面显示的链接器错误、工程无法构建、我被告知我正在重新定义 其余 未 重命名的函数、因为它仍然尝试使用它们的预编译版本。
除非配置不同、否则项目将使用预编译库构建
那么、 如何以不同的方式对其进行配置、以便不使用预编译库?
您好、Chris Hunt、
我们可以在调试模式下进行快速测试:
1) 1)在本地项目中创建修改后的驱动程序的本地副本。
2)更改#includee. 至#include 完全免费的。
3) 3)在应用程序代码中的函数调用上放置两个断点、在应调用的函数中修改后的驱动程序中放置一个断点。
4) 4)进入调试模式、并在应用程序代码函数中的断点处停止
5)进入函数和发生什么:
A)是否输入修改后的驱动程序
B)进入 SDK 驱动程序
谢谢!
Alex F