HUAWEI 擎云L420 作為AT32開發(fā)環(huán)境
前言
1. java 環(huán)境
2. python
3. C++/C
4. arm-gcc-none-eabi mcu開發(fā)
5. 雅特力修改的atlink版 openocd 編譯
clone 雅特力修改的openocd
準(zhǔn)備配置信息
前言
心血來潮,能不能在純國產(chǎn)的筆記本、系統(tǒng)上進(jìn)行開發(fā), 劃拉了一下市面上能買到的設(shè)備,也就華為擎云L410 、L420 還能買得起,用的上,因此小黃魚2xxx 買了一部99新的擎云L420 開始嘗試是否能搭建起來工作環(huán)境。
1. java 環(huán)境
wget https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-arm64-vfp-hflt.tar.gz
sudo tar -zxvf jdk-8u151-linux-arm64-vfp-hflt.tar.gz -C /usr/local/
sudo vi .profile
export JAVA_HOME=/usr/local/jdk1.8.0_151/
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
wq退出保存
之后
java -verison
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
java 環(huán)境ok
2. python
sudo apt-get install python
安裝十分順利,默認(rèn)版本是python 2.7.1
3. C++/C
待補(bǔ)充
4. arm-gcc-none-eabi mcu開發(fā)
因?yàn)槠綍r(shí)業(yè)余開發(fā)工作主要基于 arm-gcc , 比如betaflight 的開發(fā) ,因此需要搭建arm-gcc + gdb + openocd + eclipse 的開發(fā)環(huán)境,但是arm-gcc 沒有對(duì)應(yīng) aarch64 版本的交叉編譯環(huán)境,需要自己通過源碼構(gòu)建
安裝各種工具鏈
sudo apt-get -f install -y build-essential autoconf autogen bison dejagnu flex flip \
gawk git gperf gzip nsis openssh-client p7zip-full perl \
python-dev libisl-dev scons tcl texinfo tofrodos wget zip \
texlive texlive-extra-utils libncurses5-dev?
wget ?https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-src.tar.bz2?
解壓縮?
tar -jxvf gcc-arm-none-eabi-10.3-2021.10-src.tar.bz2
mkdir arm-gcc-none-aarch64
mv gcc-arm-none-eabi-10.3-2021.10 ?arm-gcc-none-aarch64?
cd rm-gcc-none-aarch64/gcc-arm-none-eabi-10.3-2021.10?
解壓縮各種源代碼?
./install-sources.sh --skip_steps=howto,md5_checksum,mingw32?
構(gòu)建依賴?
./build-prerequisites.sh --skip_steps=howto,md5_checksum,mingw?
編譯toolchain,大概需要3-4個(gè)小時(shí)?
./build-toolchain.sh --skip_steps=gdb-with-python,manual,howto,md5_checksum,mingw,mingw-gdb-with-python,package_sources --build_type=native --with-multilib-list=rmprofile,aprofile?
安裝
cp -R install_native to your dest dir
eg. in betaflight compile to ?
cp -R install_native ~/Developer/drone/workbranch/betaflight/tools/?
mv ~/Developer/drone/workbranch/betaflight/tools/install_native ~/Developer/drone/workbranch/betaflight/tools/arm-gcc-none-eabi-10.3-2021.10
以上完成 arm-gcc-none-eabi 的搭建,下一步編譯 openocd
5. 雅特力修改的atlink版 openocd 編譯
提前安裝:
sudo apt install libhidapi-dev libusb-1.0 libjaylink-dev
libjaylink-dev 因?yàn)閍pt 版本太低,需要手工源碼構(gòu)建
git clone https://github.com/damienhackett-eaton/libjaylink?
cd libjaylink?
./autogen.sh?
./configure?
make?
sudo make install
安裝完成之后,確認(rèn) 一下 libjaylink.so 是否加入到 /usr/local/lib文件夾,并手工執(zhí)行一下 ldconfig,加載動(dòng)態(tài)鏈接庫配置
clone 雅特力修改的openocd
git clone https://github.com/ArteryTek/openocd
cd openocd
準(zhǔn)備配置信息
prefix 為安裝目錄,我選擇了安裝到單獨(dú)用戶目錄,
各種配置重點(diǎn)是打開 enable-cmsis-dap 、jlink 其他的都關(guān)閉即可
CONF_FLAG="--prefix=/home/emsr/Developer/mcu/toolchain/openocd --disable-internal-libjaylink --enable-stlink=no --enable-ftdi=no --enable-ti-icdi=no --enable-ulink=no --enable-usb-blaster-2=no --enable-ft232r=no --enable-vsllink=no --enable-xds110=no
--enable-osbdm=no --enable-opendous=no --enable-aice=no --enable-kitprog=no --enable-jlink --enable-cmsis-dap"
#加載依賴子庫,確保網(wǎng)絡(luò)ok
./bootstrap
#配置automake ,缺啥庫補(bǔ)啥庫
./configure $CONF_FLAG?
make clean?
make distclean?
make?
make install
之后可以直接使用openocd
更新:
如果使用openocd 中提示,無法打開 atlink (2e3c f000) 需要將編譯出來的
openocd/share/contrib/60-openocd.rules
用 root 用戶cp 到 /etc/udev/rules.d/
然后
sudo udevadm control --reload
重新插拔 atlink后就可以使用了
arm toolchain 和openocd 編譯生成之后, 后繼就可以使用 eclipse cdt 或者 vscode+ cortex-debug 進(jìn)行 at32 mcu 的開發(fā)、debug工作