电调升级相关的回忆

        无人机项目,负责电调升级部分的bootloader的编写,就是说当电调已经安装到无人机上面之后,想改变电调的程序,那么就在线升级,而不用把电调板拆下来然后去重新下载程序,具体做法就是写一个升级的bootloader,然后下载到电调板的DSP中,当电调板上电之后,首先会运行这个bootloader,然后在这个bootloader里面会开一个定时器中断,然后如果在规定的定时时间里面没有接收到飞控主板发出的升级命令,那么定时时间到了之后就会直接跳转到电调程序开始执行,如果在规定的定时时间里接收到了飞控板发出的升级命令,那么就会进入到升级模式,这个时候飞控板会把要升级的程序发给bootloader,然后bootloader接收到用户程序之后会写到FLASH中,然后会跳转到电调程序开始执行。

    在升级的时候,CCS编译生成的out文件是二进制文件,用一个perl语言脚本把二进制文件转换成16进制文件,然后由于电调程序比较大,所以不是一次发完,是分次发送的,perl脚本在转换的时候,会把程序分成几段,每段的格式是,4字节的地址数据作为FLASH地址指针,然后是两字节的程序分块长度,然后是这一块的程序,然后会把程序放到内存卡中,然后飞控板会读取电调程序然后发送给bootloader。

posted @ 2017-07-22 11:39  cumtchw  阅读(174)  评论(0编辑  收藏  举报