电调升级步骤(飞控端)

1:把.out文件转换成sciprog格式的文件,由于在bootloader里面,用户接受电调程序的缓冲区buffer(L0 SARAM)长度只有0x1000,当用户程序块大于此长度时,要将程序分段,所以这里用perl写了个out2sciprog.exe程序,该程序首先会把.out转换成.hex文件,再将.hex按如下格式分段:

{addr1}{length1}{block1}

{addr2}{length2}{block2}

...

{addr_n}{length_n}{block_n}

00000000 {Entry Addr}

分段后,每块程序为一行,长度不超过0x1000。分段后的程序文件以.sciprog为后缀。

具体做法是:将生成的.out文件和out2sciprog.exe放在电脑同一路径下,然后打开windows的命令窗口,然后在命令窗口输入out2sciprog.exe  usercode.out,其中usercode是电调程序的名字,然后就会生成usercode.sciprog,如下图所示:

生成的sciprog文件格式如下图所示,

生成sciprog格式的文件之后还要对文件的格式进行调整,要把每一段之间的空格删掉,删掉之后如下图所示,

然后把修改好格式之后的sciprog文件放到内存卡中。

2:使用命令进行升级,在Ubuntu中打开终端,输入命令sudo minicom打开终端,然后在超级终端中输入命令esc_up  start命令开始升级过程,屏幕上一次会打印出相应的提示信息,等待一段时间,待nuttxshell的命令行打印出ESC firmware update finish.......时,说明升级完成。

3:查看升级是否成功:升级完成之后可以用命令esc_up  test命令查看升级是否成功,输入esc_up test命令后,如果打印出set  motor x,motor version is 0xxxxx,speed  ki  is 0xxxx,reset  motor x说明电调x升级成功,如果打印出set  motor x,esc_up: register  read  error, motor x  info  read error,说明电调x升级失败。

作者:cumtchw
出处:http://www.cnblogs.com/cumtchw/
我的博客就是我的学习笔记,学习过程中看到好的博客也会转载过来,若有侵权,与我联系,我会及时删除。

原文地址:https://www.cnblogs.com/cumtchw/p/7223731.html