STM32H750外挂flash程序加密问题
因为STM32H750自带的FLASH太小,而工程文件超过这个flash的容量,所以需要外挂一块flash来存程序,但是此程序需要加密,然后就遇到了问题。如果我往里面存的是密文,那么我读取的时候就要解密,现在衍生了另一个问题就是我STM32是如何从flash读取指令并执行的?是读一句执行依据还是将flash里面的程序整体读到内部ram里面再执行的?如果是前者,那么我读密文程序指令的时候,还要先去解密再去执行,这样的话我整个程序运行的时间是怎样的呢?如果是后者,那么STM32又是怎样实现整体解密的呢?希望对程序加解密有经验的朋友能够给一点建议,多谢!
要用外扩什么Flash,NorFlash?NandFlash?SPI Flash?
只是存数据的话,好办一些。如果还想从外部Flash执行程序,而且还是加密的,那么恐怕有点难度。
STM32执行程序既不是读一条执行一条,也不是全部搬到内部RAM执行,而是带流水的。
你的工程文件大,不全是运行程序吧,应该有不少是数据吧,那么可以分开存放。 同意楼上,存用户保存的数据的话加密解密好弄,存用户程序的话就不太好加密了吧 这个很简单的啊。加密的东西存在片内的FLASH。片外的FLASH只作为数据。你的工程再大,总不至于全部都是执行代码吧。其实也没有必要全部加密。如果需要全部加密,可以外加一个加密芯片。这样更保险 核心算法放在片内,外部放部分程序和数据。程序只做调用处理,参数加密就可以了,还可以增加ID加密,拷贝出去也没用 toofree 发表于 2019-1-4 09:21
要用外扩什么Flash,NorFlash?NandFlash?SPI Flash?
只是存数据的话,好办一些。如果还想从外部Flash执 ...
外扩Nor Flash,其实本身的执行程序不大,但是调用了一个DSP库的定点FFT之后整个工程就126k了,而H750的内部flash只有128k,所以寻求方法呢 笨熊 发表于 2019-1-4 10:53
这个很简单的啊。加密的东西存在片内的FLASH。片外的FLASH只作为数据。你的工程再大,总不至于全部都是执行 ...
其实外加加密芯片不可靠,因为将整个程序放到外部flash,可以绕开这块加密芯片将里面的程序读出来的。 toofree 发表于 2019-1-4 09:21
要用外扩什么Flash,NorFlash?NandFlash?SPI Flash?
只是存数据的话,好办一些。如果还想从外部Flash执 ...
我不是很理解STM32带流水执行程序,能否在解释下呢?谢谢 本帖最后由 toofree 于 2019-1-7 14:47 编辑
思行一 发表于 2019-1-7 14:24
外扩Nor Flash,其实本身的执行程序不大,但是调用了一个DSP库的定点FFT之后整个工程就126k了,而H750的内 ...
不加FFT和加FFT都编译一下,看一下生成的BIN文件各占多少?
按照你说的本身程序不大,那么我认为程序是不是只有三四十K?加个FFT应该不至于占八九十K吧!
如果程序大,也可能是常量数据大,那么常量数据放到NorFlash就好了。变量定义时都不要初始化,直接在程序运行开始时通过常量数组给变量数组赋初值。
toofree 发表于 2019-1-7 14:42
不加FFT和加FFT都编译一下,看一下生成的BIN文件各占多少?
按照你说的本身程序不大,那么我认为程序是不 ...
其实却是如你猜想的那样,我在map文件里面查看了。我如果使用浮点FFT的话只有40k左右,如果我调用的是q15定点FFT的话就变成126k了,就是bin文件的大小。
页:
[1]
2