专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM32
如何把一个算法函数编译成一个二进制数组,进行调用?
2019-12-28 17:50
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
7225
16
16
纯技术讨论,不用lib方式,如何把一个算法函数编译成一个二进制数组,然后再工程中进行调用? 为了算法保密。 lib文件,这样太明显了。
发送
看不清?
15条回答
XA144F
1楼 · 2019-12-29 09:38.
采纳回答
把这函数的bin提取出来,经过aes加密后放在特定位置,每次使用时解密放在ram中,用函数指针进行调用。
加载中...
lgg88
2楼-- · 2019-12-28 18:36
bin 文件可以反汇编嘛 也不保密
加载中...
fbwcpu
3楼-- · 2019-12-28 20:36
这个不是问题。。。。。反汇编ASM 也是很难滴读懂的。主要是可以实现把一个算法函数编译成一个二进制数组,进行调用吗?
加载中...
wye11083
4楼-- · 2019-12-29 02:22
精彩回答 2 元偷偷看……
加载中...
KongQuan
5楼-- · 2019-12-29 07:28
那就把函数先固定位置,生成bin后。把这函数的bin提取出来, 然后,再建一个项目, 这这段bin做成数据数据放到固定位置, 然后,通过函数指针调用。
加载中...
gamethink
6楼-- · 2019-12-29 12:21
如果是单片机,感觉很难做哦。以下是我的想法,没试过,只是想法。
首先你得独立将算法抽出来,用一个单独工程并汇编写好,并且固定好里面使用的内存空间,在入口PUSH,出口POP保护好所有的环境,然后还得想好返回的东西放在什么地址,要固定下来,不要让编译器占用,具体怎么做我忘记了,很久很久以前试过。然后将这块东西编译。(可能用C语言也可以实现?)
然后编译完找出那一块代码的二进制数据,因为刚才编译出来肯定用的是一个完整工程,通常会有启动代码,也许自己写的,也许编译器自带的,所以要避开这部分,找出编译好的那一块东西对应的二进制数值,然后放在程序空间。要注意大端小端的问题。然后将程序指针手工移动到那块数据然后执行。
估计这样做也会遇到很多困难,例如编译错误什么的,程序崩溃什么的,需要尝试下
加载中...
XA144F
7楼-- · 2019-12-29 15:03
7楼搞的这么麻烦?如果是mdk,编译完成后打开map或list文件就能轻易找到相关函数的地址和占用的容量,到时候在bin里找到那个位置复制出多少字节不就ok了?
加载中...
1
2
3
下一页
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
芯片供应紧张,准备换个MCU,MM32L系列替换STM32L系列的怎么样?
7 个回答
STM32同时使用两个串口进行数据收发时数据丢包的问题
5 个回答
STM32F103串口通信死机问题
4 个回答
STM32WLE5CC连接SX1268在LoRa模式下能与 SX1278互通吗?
2 个回答
STM32开发板免费用活动
7 个回答
stm32 处理 DHT11占用太多时间,大家程序是怎么设计的
8 个回答
分享一个STM32单片机做的离线编程器代码
9 个回答
相关文章
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
STM32
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
首先你得独立将算法抽出来,用一个单独工程并汇编写好,并且固定好里面使用的内存空间,在入口PUSH,出口POP保护好所有的环境,然后还得想好返回的东西放在什么地址,要固定下来,不要让编译器占用,具体怎么做我忘记了,很久很久以前试过。然后将这块东西编译。(可能用C语言也可以实现?)
然后编译完找出那一块代码的二进制数据,因为刚才编译出来肯定用的是一个完整工程,通常会有启动代码,也许自己写的,也许编译器自带的,所以要避开这部分,找出编译好的那一块东西对应的二进制数值,然后放在程序空间。要注意大端小端的问题。然后将程序指针手工移动到那块数据然后执行。
估计这样做也会遇到很多困难,例如编译错误什么的,程序崩溃什么的,需要尝试下
一周热门 更多>