JLinkV8在Linux系统下刷AT32系列芯片
因囊中羞涩,笔记本适应不了高配的Windows系统,改用国产的Deepin Linux系统已经很多年了,以前用STM32F070芯片在Linux系统上开发过几个项目,很方便。手头也积攒了好几个JLinkV8下载器,用起来也没啥问题。
国产芯片近几年发展迅速,性能卓越,忍不住买了几个AT32F421的芯片,打算做一下测试和以前的代码移植。参考官方的文档,发现硬件PinToPin没问题,软件上修改也不算太麻烦,说是支持JLink下载器,但却只有Windows平台上的驱动,包括ATLink,这对我来说有些麻烦。
根据官网文档关于JLink识别芯片的说明,又看了Windows平台下能够识别的JLink_V620c的驱动目录,发现其中JLinkDevices.xml不同和Devices下多了ArteryTek目录,那么把它们移植到Linux JLink驱动下能否好用呢?一试果然OK。
JLinkV620c Linux驱动和需要替换的文件打包在这里下载:https://download.csdn.net/download/Blears/86768633
下载后解压:
unzip AT32_JLinkV8_Linux.zip
然后安装V620c驱动:
sudo dpkg -i JLink_Linux_V620c_x86_64.deb
接下来覆盖驱动文件:
sudo cp -r Devices /opt/SEGGER/JLink_V620c/
sudo cp JLinkDevices.xml /opt/SEGGER/JLink_V620c/
这样JLinkV8就可以识别AT32芯片了,能够识别,下载就简单了。
建立一个 download.sh
#/bin/bash
project_path=$(cd `dirname $0`; pwd)
cd $project_path
if [ -e $1 ]; then
echo "download file exist"
if [ -e $project_path/at32f421xx.jlink ]; then
rm $project_path/at32f421xx.jlink
echo "delete old at32f421xx.jlink"
fi
echo "creat at32f421xx.jlink"
echo "h" >> $project_path/at32f421xx.jlink
echo "loadbin" $1 "0x08000000" >> $project_path/at32f421xx.jlink
echo "r" >> $project_path/at32f421xx.jlink
echo "g" >> $project_path/at32f421xx.jlink
echo "qc" >> $project_path/at32f421xx.jlink
JLinkExe -device AT32F421F8P7 -Speed 4000 -IF SWD -CommanderScript at32f421xx.jlink
exit 0
else
echo "download file not exist"
exit -1
fi
然后:
chmod 755 download.sh
./download.sh xxx.bin
完成下载。