有关键算法和数据,需事先烧写进msp430芯片中,再售予卖方,实现可控。
问1: 单独一个或几个无main 的函数 及数据 如何 生成hex文件 或 其他合适文件?
问2: 用什么工具及软件可以将此格式文件单独烧写进芯片中?
问3: 买入方该如何调用这些函数?及烧写时又该如何?
问4:是否还有其他需注意的问题?
谢谢!
Young Hu:
您好!
可以采用库的形式提供给客户啊!您的客户可以通过将库添加到工程中,调用函数使用您的算法。
Peter_Zheng:
回复 Young Hu:
跟蝈蝈说的一样可以将这部分代码做成lib的形式给客户提供接口函数即可,另外可以通过430 flash programmer将代码和数据直接烧写到定义的地址区间
Min Wang:
回复 Peter_Zheng:
看来是我没有把问题说清楚。核心是我想控制客户从我这里购买烧制好了的芯片。如果把lib给人家,人家可以烧制无数个芯片,也可以从别人手里买芯片,这不是我想要的。
Min Wang:
回复 Min Wang:
类似于有些芯片中已经有AES加密解密算法一样,要达到这种效果:这有从我这里购买的芯片才有此算法,而且数量是有我控制的。
Charles Wu:
回复 Min Wang:
楼主的意思是,需要先烧录一部分代码进430芯片,且这部分代码是不允许你的客户读出的?
Charles Wu:
回复 Charles Wu:
仔细思考了楼主的这个问题,发现确实很棘手。你不允许代码被读出,所以烧完你的代码后,JTAG接口必须熔断,否则放在Flash里的代码也就没有保密可言。而熔丝烧断后,只能通过BSL接口进行烧录。而现在片内自带的UART的BSL,没有password的情况下下,只能允许把Flash全部Erase,然后重新烧录,这就和楼主本意不符了
Charles Wu:
回复 Charles Wu:
只能用一种方法,在楼主预烧录的代码中,包含一个自己定制的BSL代码,用来完成后续终端客户对Flash的烧录。说的详细一点,类似于预烧录代码中,包含一个main函数,而main函数包含每次上电时,对一个GPIO判断,来决定这次上电是跳转到中断客户的代码,还是自带的BSL代码。而需要加密的库文件,就以指针函数的方法,放在特定段就好。用自己定制的BSL代码,就能限制终端客户的读出,请也能限制再次烧录的地址范围。只是这样方法,会占用Reset的中断向量位置不允许被修改,而终端客户的代码中,势必有对中断向量表其他向量的写入,整个控制逻辑会比较复杂。
Charles Wu:
回复 Charles Wu:
洛里啰嗦说了半天,好像表述的不是很清楚,也不知道大家看不看的懂。且这也只是从理论上看起来可行,没有实际试过,实际去实现的时候应该还会有一些问题需要考虑。不知道楼主会不会做这个尝试?若有问题我们再探讨
Min Wang:
回复 Charles Wu:
看来这个方向技术上比较麻烦,可否换一种思路?核心是保护我的代码和能控制住少些芯片数量。不知有何好的建议?
Charles Wu:
回复 Min Wang:
单芯片的解决方案就想到了这种。若你的设计能接受多芯片,可以采取和苹果加密芯片相似的方法,额外加一个430MCU烧断熔丝,里面带加密的算法,每次调用你的库时需要先和加密芯片通讯。这样,放在主芯片的库文件就不需要考虑加密的问题'。