Linux 上搭建 8051 单片机开发环境

Linux 开发一些单片机一直是一种难题,毕竟单片机这玩意不少就是为了适应广大单片机工程师而采用 Windows 的 IDE ,而且比较封闭。

本文介绍如何在 Linux 上使用 Flatpak 版 Q4Wine 与 Keil 搭建 8051 开发环境,还包括全局设置等宽字体并使用 STC-ISP 连接 USB 串口设备刷写 HEX 文件。同时也会介绍另一种单片机开发工具。

由于采用了 Flatpak,所以是发行版通用的。openSUSE、Fedora、Arch、Ubuntu、Debian 等都可以使用。

Flatpak 环境准备

要使用 Flatpak 环境,首先需要安装 Flatpak。在大多数发行版上安装 Flatpak 都比较简单——安装名叫 flatpak 的软件包即可。

以 openSUSE 为例:

sudo zypper in flatpak

然后添加软件源:

sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

之后安装 Q4Wine:

sudo flatpak install flathub ua.org.brezblock.q4wine

Q4Wine 配置

运行 Q4Wine(当然也可以在应用菜单中点击 Q4Wine 图标启动):

flatpak run ua.org.brezblock.q4wine

Wine 有个概念叫“前缀”,不同的前缀就是不同的虚拟 Windows 环境,可以把不同的应用隔离开来,避免相互影响。

点击 Q4Wine 的前缀标签(1),添加新的前缀(2):

弹出菜单,名称自己随便取,我这里以“C51”为例,然后架构的话建议选择 win32,因为 Keil4、Keil5 与 STC-ISP 都是 32 位的程序,没必要搞 64 位环境。其他路径什么的保持默认即可。默认会保存到 ~/.var/app/ua.org.brezblock.q4wine/data/wineprefixes/ 下面,有需求的也可以自己修改。

安装 Keil5

添加完了返回程序标签页,右击 C51,在弹出菜单中选择运行、浏览,然后打开下载的 Keil 安装包( Keil4、Keil5 都行,个人推荐 Keil5,可以修改打开文件的字符集,更好解决乱码问题),勾选同意许可协议(I agree to XXX),一路确认安装即可。

中间会有地方叫用户填写名字和邮箱、公司这种信息,只要邮箱格式正确,其他随便乱填。(如下图)

安装 STC-ISP

这个软件原理上讲是不需要安装的,但我建议复制到 Wine 前缀内部运行。STC-ISP 不能直接像运行安装包那样运行,因为缺少了 mfc42.dll 这个运行库。有两种解决办法。

一种是用 Q4Wine 的设置选项卡来使用 Winetricks 安装 mfc42。首先更新一下 Winetricks 指令稿,再刷新应用程序清单。

之后在 DLL 那一栏找到 mfc42 安装。

这个方法的缺点是,对网络条件有要求,网络不好没法下载。

第二种方法是直接从别处复制一个 mfc42.dll 过来,并放在 stc-isp 的目录下,然后把整个文件夹复制到前缀里面。(不能放在前缀以外,因为这样 Q4Wine 在 Flatpak 内用“运行、浏览”只能看到选择的单个文件,看不到同一文件夹下的其他文件)。

添加 Q4Wine 图标

通常情况下,Wine 会为安装的程序创建应用菜单,但是因为 Flatpak 环境做了隔离,所以需要手动给 Q4Wine 添加。右键空白处,选择 new icon,就会弹出添加图标的窗口。选择前缀里的 drive_c/Keil{_v5}/UV4/UV4.exe 即可。

全局等宽字体

设置全局等宽字体看起来会舒服一些,因为 Wine 环境默认并不会把所有应该用等宽字体的地方用上等宽(比如 stc-isp 的界面)。原理就是用一个等宽字体替换默认的几个 Windows 字体,然后写注册表。

注册表文件的内容如下,把 wqy-zenhei-mono.ttf 换成自己的字体文件名称,然后在前缀内部另存为 font.reg

REGEDIT4
 
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink]
"Lucida Sans Unicode"="wqy-zenhei-mono.ttf"
"Microsoft Sans Serif"="wqy-zenhei-mono.ttf"
"MS Sans Serif"="wqy-zenhei-mono.ttf"
"Tahoma"="wqy-zenhei-mono.ttf"
"Tahoma Bold"="wqy-zenhei-mono.ttf"
"SimSun"="wqy-zenhei-mono.ttf"
"Arial"="wqy-zenhei-mono.ttf"
"Arial Black"="wqy-zenhei-mono.ttf"
"Courier New"="wqy-zenhei-mono.ttf"

把要用字体复制到 drive_c/windows/Fonts/ ,然后打开 Q4Wine 的注册表编辑器(regedit),导入注册表文件。

发表评论

您的电子邮箱地址不会被公开。