感谢香主扶贫下乡,继续探讨ISP问题(案没时间看,来个空想吧)
因为这几天几个产品同时干,没时间研究STM32~~~
不过听香主的ISP解说,俺琢磨它的ISP也是要又硬件握手的.
1) Bootloader是在System Memory,这个区域必须通过设置Boot1和Boot0引脚才能启动,正常工作状态下,这部分区域是被隔离开的,自动被绕开,Bootloader绝对不占用任何用户程序的资源。
简单地说:当你要使用ISP烧写数据到Flash时,需要设置Boot1和Boot0启动System Memory中的Bootloader;烧写完成后,再重新设置Boot1和Boot0启动Flash中你自己的程序,进入正常操作。
2)STM32中的Bootloader使用USART1做为通信端口,它使用8个数据位、1个停止位和偶校验,具有自动波特率检测功能。
"需要设置Boot1和Boot0启动System Memory中的Bootloader"
从1)中能"听到"Boot1和Boot0需要某个固定电平信号才能进入ISP模式.
在工控中应该如此,这样安全系数很提高很多~~~
"烧写完成后,再重新设置Boot1和Boot0启动Flash中你自己的程序,进入正常操作"
再"听说"后感觉要回到运行状态,必须要设置Boot1和Boot0为其他的某个固定电平信号.
这么说2者的信号组合不同(密码),就会在reset后进入不同的"分枝"???
因为在产品定型后,软件的升级当然用ISP较好,应该比USB好些,因为要考虑工业现场和通讯距离问题.
但肯定不能打开机壳来转换ISP和RUN方式,所以要通过外部对Boot1和Boot0控制
以实现不开壳来ISP升级产品的软件.
如果菜农说得(理解)对了,那么STM32做产品俺是铁了心了~~~
下面是俺在LPCARM上实现的"不开壳来ISP升级"~~~3年来很完美,现场改程序很方便~~~
而且本身串口就是做数据采集的,所以俺期待香主的回答是肯定的~~~
那么,STM32的ISP软件可以控制其他232信号吗???
就像LPCARM的DTR/RTS???估计STM32不会这样做的,它会感觉NXP会笑话它的~~~
"牛人是不会抄袭的"~~~可是一定害苦了贫民百姓~~~
所以俺肯定要自己编写STM32的ISP软件~~~这样可以完成远程数据通讯附带ISP软件升级~~~
再次感谢香帮主的教诲!!!!!!!!!!!!!!!!!!!!!!!
相关链接:
http://blog.ednchina.com/hotpower/12800/category.aspx