看到 MM32 官网的 MM32_JLINK_pack 只有 win 版本没有 Linux 版本。为了解决 Linux 下调试 MM32 的问题,于是对官网的 MM32_JLINK_pack 动了想法。
此处以 Arch Linux 为例,其他 Linux 可以参考处理方法。
1. 编写 PKGBUILD
# Maintainer: taotieren <admin@taotieren.com>
pkgname=mm32-jlink-pack
pkgver=0.97
pkgrel=1
epoch=
pkgdesc="JLINK Pack 支持包支持 MM32 全系列芯片,在 SEGGER JLink 6.10 及以上版本下的安装。"
arch=('any')
url="https://www.mindmotion.com.cn/support/software/jlink_pack/"
license=('custom' 'Commercial')
groups=()
depends=("jlink-software-and-documentation>=6.10")
makedepends=('libarchive')
checkdepends=()
optdepends=()
provides=('MM32_JLINK_pack')
conflicts=()
replaces=()
backup=()
options=('!strip')
install=${pkgname}.install
changelog=
source=("${pkgname}-${pkgver}.zip::https://www.mindmotion.com.cn/download1.aspx?itemid=152&typeid=4"
"${pkgname}.install")
noextract=(${pkgname}-${pkgver}.zip)
sha256sums=('b819fe79db4e135e039ebe407318d9b1a4362bbe71720c9f42f52e4f3825770a'
'783f83bea0655ec837a2c52286ccea7bc5989b183303c62dc92d86a8a6d78fa9')
#validpgpkeys=()
package() {
install -dm0755 "${pkgdir}/opt/SEGGER/JLink/"
bsdtar -xf "${srcdir}/${pkgname}-${pkgver}.zip" --strip-components=1 -C "${pkgdir}/opt/SEGGER/JLink/"
find "${pkgdir}/opt/SEGGER/JLink/" -type f -exec chmod 644 "{}" \;
find "${pkgdir}/opt/SEGGER/JLink/" -type d -exec chmod 755 "{}" \;
cd "${pkgdir}/opt/SEGGER/JLink/"
# mv JLinkDevices.xml JLinkDevicesMM32.xml
tail -n +1610 JLinkDevices.xml > JLinkDevicesMM32.xml.patch
rm -rf JLinkDevices.xml
}
2. 编写 INSTALLL 文件
# mm32-jlink-pack.install
info() {
echo -e "JLINK Pack 支持包支持 MM32 全系列芯片,在 SEGGER JLink 6.10 及以上版本下的安装。"
}
post_install() {
echo "Install JLinkDevicesMM32.xml..."
info
install_jlinkdevices
}
post_upgrade() {
post_install
}
pre_remove() {
echo "Uninstall JLinkDevicesMM32.xml..."
mv -v /opt/SEGGER/JLink/JLinkDevicesBak.xml /opt/SEGGER/JLink/JLinkDevices.xml
}
install_jlinkdevices() {
cp -rv /opt/SEGGER/JLink/JLinkDevices.xml /opt/SEGGER/JLink/JLinkDevicesBak.xml
sed -i "s|</DataBase>||g" /opt/SEGGER/JLink/JLinkDevices.xml
cat /opt/SEGGER/JLink/JLinkDevicesMM32.xml.patch >> /opt/SEGGER/JLink/JLinkDevices.xml
}
本地验证没发现问题,已经将此包上传至 AUR 仓库:mm32-jlink-pack
|