OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5887|回复: 3

想把芯片和算法一起捆绑,但是算法部分想对外用户保密。(对用户来说就类似于寄存器一样,他们设定好了参数,调...

[复制链接]

2

主题

2

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2023-2-6
在线时间
4 小时
发表于 2023-2-9 13:49:05 | 显示全部楼层 |阅读模式
3金钱
项目本身是:设计了一块芯片,然后这块芯片可以专门用来在一个特定的仪器上做主控,也可以像国产gd32这类芯片一样做一些普通设计。
目前想把这块芯片和仪器算法一起捆绑,但是算法部分想对外用户保密。(对用户来说就类似于寄存器一样,他们设定好了参数,调用算法,然后算法返回结果)

目前我尝试了以下两种方法:
1.单片机先后下载进A B两个程序,A程序就是用户程序,B程序就是我们的算法程序,在芯片出厂的时候把B程序下载进Flash保存。用户自己编写A程序,当A程序运行到某个位置需要调用B程序,等B程序运行完后返回A程序接着刚才的位置运行。但是实现有困难,需要自己写一个上下文切换架构,这对用户来说是不可能的。
2.把算法做成一个lib,传入算法的参数存到某处flash地址a,算法内部从这处地址a获取,然后把运算结果返回到flash地址b,用户程序从地址b获取结果。

请问各位大佬,你们还有哪些方法可以做到呢?请赐教,感激不尽!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

800

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3775
金钱
3775
注册时间
2017-3-7
在线时间
1645 小时
发表于 2023-2-10 09:14:43 | 显示全部楼层
一般的做法都是做成lib或者sdk吧,只给头文件和静态库/动态库
回复

使用道具 举报

11

主题

2103

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4588
金钱
4588
注册时间
2015-1-10
在线时间
574 小时
发表于 2023-2-11 15:42:34 | 显示全部楼层
静态库的方式
回复

使用道具 举报

2

主题

446

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4133
金钱
4133
注册时间
2018-5-14
在线时间
902 小时
发表于 2023-2-13 08:42:39 | 显示全部楼层
第一种就是和emwin一样,编译成lib文件并提供头文件。第二种就比较复杂了,需要你手动编写链接文件,将你的代码直接链接在指定flash地址,然后使用的RAM也是指定的RAM地址。指定用户可以操作某段RAM当做寄存器,这样需要用户在编译程序时不包含你程序占用的FLASH空间和RAM空间。然后提供的函数的入口地址和参数给用户让其周期调用(类似于IAP的强制函数指针类型转换)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 16:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表