您尚未登录。

楼主 # 2022-02-24 17:12:35

taotieren
会员
注册时间: 2020-05-19
已发帖子: 116
积分: 151

给 Arch Linux 下的 jlink-software-and-documentation 添加 MM32_JLINK_pack

看到 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
}

3. 本地验证没发现问题,已经将此包上传至 AUR 仓库:https://aur.archlinux.org/packages/mm32-jlink-pack

https://bbs.21ic.com/data/attachment/forum/202202/24/153230zfvrthnzevvzvhpn.png.thumb.jpg

最近编辑记录 taotieren (2022-02-24 17:14:29)

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn