简单点可以采用芯片ID来进行加密,在程序执行过程中在不同的地方都进行id判断。
复杂点用一些加密算法,比如AES,通过特定的AES加密算法把程序加密后,通过iap的bootloader程序解密用户程序,正常解密后的程序才能正常执行。
Atmel有专门的加密/解密芯片.不过感觉这个东西一般用得很少.
外部FLASH 基本上是防不了读写的。
因为芯片读写协议厂家规定了,只要你按照这个时序去读,都能读出来。
唯一要防止的是,让你读出来,在其他的硬件上你运行不了,这就达到了设计的目的。
通用的基于硬件的UID,外部的加密芯片等方式进行加密