我司正在开发MSP430F5438A的产品。遇到以下几点问题,请帮忙解答。
1. 430的BSL除了下载程序外,可以用来做串口通信吗?还是说只有在BSL mode下,对应的pin才能是串口的功能,
其它时候,无法用作串口功能实现与上位机通信?
2. 出于对产品的内代码的保护目的,请问430有哪些机制保证我的软件安全吗?包括不能被读取出二进制文件。
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.
我司正在开发MSP430F5438A的产品。遇到以下几点问题,请帮忙解答。
1. 430的BSL除了下载程序外,可以用来做串口通信吗?还是说只有在BSL mode下,对应的pin才能是串口的功能,
其它时候,无法用作串口功能实现与上位机通信?
2. 出于对产品的内代码的保护目的,请问430有哪些机制保证我的软件安全吗?包括不能被读取出二进制文件。
楼主你好,
这里简答回答一下:
1、5438A的BSL引脚为P1.1和P1.2,他们是定时器模块的脚,不是uart模块的脚。换句话说,BSL串口功能是通过定时器模拟来实现的,那么问题1的回答应该是BSL的管脚在非BSL模式下也可以做串口功能来用,但是不是使用的真正的串口模块,而是要通过定时器模拟来实现。如果要使用5438A自带的硬件uart,这两个管脚是不行的。
2、430对代码的保护主要有这两个方面:
1)对于JTAG/SBW,可以通过将熔丝熔断的方法。熔断之后JTAG/SBW完全被disable,也就是切断了通过JTAG/SBW读取片内代码的可能;
2)对于BSL,对代码的读取需要先向BSL发送32个字节的密码,该密码就是片内程序的中断向量表的值。换句话说,只要你自己不将片内程序的二进制代码给别人,别人是不会知道中断向量表里的内容的,也就无法通过BSL执行读取flash内容的操作。
xinxin li2,
关于MSP430的加密,建议参考“【经验分享】MSP430单片机常见加密总结”:
http://www.deyisupport.com/question_answer/microcontrollers/msp430/f/55/t/4274.aspx
BR,
Lina
你好,
这段指令的内容应该是希望读取地址为0x0ff0开始的0x10个数据。但是根据F149的datasheet来看,地址0x0ff0是在ROM区。文档slau319中有描述:
The transmit data block command is used for any read access to the flash memory, RAM, or peripheral module control registers at 0000h to 01FFh.
关于读写时序,楼主可以参考下面的时序,把地址和长度参数换成自己的:
TO BSL: 80
(Synchronization character sent to the BSL)
FROM BSL: 90
(Acknowledge from BSL)
TO BSL: 80 14 04 04 00 0F 0E 00 75 E0
(Send Command to read memory from 0x0F00, length 0x000E)
FROM BSL: 80 00 0E 0E F2 13 40 40 00 00 00 00 00 00 02 01 01 01 C0 A2
(Returned values from BSL)
Regards,
Rik