阅读:1778回复:0
如何对内核代码进行编码保护?
存在辐射的环境中,RAM, flash中的数据位可能发生翻转, 1变为0, 0变为1。
我们对FLASH芯片采用硬件进行保护,也就是triple-redundancy 对于RAM中的内核我需要用软件编码的方式进行保护(例如hamming码或者reed-solomon码) 压缩过的内核存放在flash中,bootloader将其复制到SDRAM中,然后自解压。 如何知道自解压之后内核的起始地址和结束地址? 我的想法是解压之后,即读取解压后的内核代码进行编码,把校验码放在内存的某个位置(用kmalloc或者vmalloc分配)。 以后定时进行解码和校验,如果错误发生对内核代码进行纠错(修改)。 不知道在内核中有没有权限对内核code进行随意读和写? |
|
|