This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于CORTEX-M4的加密问题。

Other Parts Discussed in Thread: LMFLASHPROGRAMMER

你好!

       请问下,我的LM4F如何实现加密(防止源代码被他人读取)。

       还有,加密以后,还能用BOOTLOAD 升级吗?如何升?

  • 1. 现在TI的LM4F芯片全部切换到TM4C为前缀的型号了。

    2. TI M4的芯片可以通过在程序中国锁定JTAG口的方式加密,一旦加密后芯片就不能通过JTAG口访问了

    3. 芯片加密后,可以通过BOOTLOAD升级。但不能读出芯片的代码

    4. 如果需要通过JTAG重写芯片,需要专用的工具解锁JTAG,JTAG一旦解锁,芯片内部的FLASH包括EEPROM都会被全部擦除。

  • 还是不太清楚您的意思。

    按你这么说,我是不是只要在源代码里面,把BOOTCFG寄存器中的DBG1和DBG0都置为0,或是1,那么就可以disable JTAG了?

    那么,我有几个问题:

    1.   如果只是这样,那么规格书里面提到的FMPRE(Flash 存储器保护读取启用寄存器)是不是就没用了(反正我只要锁定JTAG就可以了)?

    2.   BOOTCFG和FMPRE等寄存器修改以后都需要提交的,提交是不是就是意味着把寄存器内容,写入非易失性存储器,那么每次上电都写一次,有没有问题?

  • FMPRE也就是FLASH存储器保护寄存器使用的范围是指系统内部。而不是指系统外部。

    对FLASH分区读取管理是为了在一些系统中,由于系统操作的权限不一样,为了防止低权限的去非法操作,实现的存储区分区保护。

    例如我们移植一个小的实时系统,我们就可以把系统内核部分设置成只读。

    而禁止JTAG口,是为了防止外部操作通过JTAG口去访问FLASH。这是两个不同的概念。

  • 您的意思是是不是,例如我在FLASH的前16K的地方,做了一个SD卡的boot_loader(用SD卡升级用户应用代码),而且我的boot_loader不用再次升级,那么我就可以用FMPRE把这个16K保护起来?

    还有,就是如果我把JTAG口锁起来,那么下次调试的时候,是不是只能用LMFlashProgrammer先把FLASH清空掉,才能再次用JTAG连接IC?还是有其它办法可以解锁JTAG?谢谢