神农鼎 发表于 2024-1-1 19:29:10

Linux, Mac : STC-ISP 如何运行

Linux, Mac : STC-ISP 如何运行 | 荣誉版主 kksk 提出可用的解决方案
=== Linux,   用 Wine
=== macOS,用 PlayOnMac
在【非 Windows 系统】下使用 STC-ISP 的简略解决方案
开头先说明:本方法只推荐做应急使用(例如有时身边没有装有 Windows 系统的电
脑,又恰好需要使用 stc-isp 进行下载),如长期开发使用则更推荐使用虚拟机或双系统
等方案。此处以 macOS 为例。

【软件准备】
stc-isp;
PlayOnMac(免费,仅英语)或 CrossOver(付费,有中文,提供 14 天试用);
Microsoft Visual C++ 6.0 (4.2 & 6.0) Redistributable(如适用)。

【背景介绍,可以跳过不看】
相信很多用过 macOS 或 GNU/Linux 都听过一个叫 Wine 的软件。它提供了一个兼容
层,使得 Windows 应用能在其它系统上运行。相较于将整个 Windows 系统原封不动地搬
进电脑里的虚拟机,Wine 通过翻译调用的形式运行程序,降低了占用。
遗憾的是,Wine 的 macOS 版本目前暂无人维护,先前的编译仅提供了 32 位应用程序,
也就意味着 macOS 10.15 及以上版本均无法运行。不过,第三方,例如上面提到的两个软
件,都继续了 Wine 的支持,使得其能够在更高版本的系统上运行。


【PlayOnMac 安装与配置】
       进入软件官网(www.playonmac.com)并点击右上角的 Download,下载系统相应版
本的 PlayOnMac。完成后挂载下载的 dmg 文件,并将 PlayOnMac.app 文件拖入
Applications 文件夹即可。



      在安装完成后运行软件并点击窗口上方中部的“Install”或左侧边栏中的“Install a
program”,并在新窗口中点击左下角的“Install a non-listed program”(无需等待它加载
完)。随后一路“Next”直到填写容器名的页面,为你的容器取一个名字(不能包含空
格),在下一步中勾选“Install some libraries”,随后推荐选择“64 bits windows
installation”。待创建好虚拟磁盘后会跳转到安装 library 界面,此时勾选
“POL_Install_vcrun6”并点击“Next”。
       如果运行库迟迟下载不下来则不要勾选“Install some libraries”,在后续选择安装文件
时选择 Vs6sp6.exe。




      
       环境准备好后会让你选择安装文件。如你所料,stc-isp 无需安装,因此这一步我们选
择 stc-isp 可执行文件进行测试。点击“Next”后熟悉的 stc-isp 窗口就会加载,随后关闭即
可(记得选关闭程序而非最小化)。此时 PlayOnMac 便会猜测安装已完成,于是扫描磁
盘让我们选择创建快捷方式。当然,因为我们并没有所谓的安装,可以从下方列出的
“wmplayer.exe”和“wordpad.exe”中任选一个创建快捷方式,创建完成回到该界面时点击
“Cancel”即可。
【!!! 注意:当没有快捷方式(如第一次安装程序)时
必须创建一个快捷方式,否则无法进行后续步骤 !!!】







       在完成后,你的主界面应该会有且只有一个 wordpad 的快捷方式,这里因为我有其它
容器所以还有别的快捷方式。此时不用管它,直接点开左侧边栏或顶部工具栏的
“Configure”,然后选中你的容器名(注意是容器名,不是快捷方式的名字),并点击
“Miscellaneous”栏目中的“Open virtual driver’s directory”。一个 Finder 窗口将会弹出,这
时可以打开其中的“driver_c”目录(即 C 盘)并将我们的 stc-isp 可执行文件拷贝进去。随
后返回“PlayOnMac Configuration”窗口,在“General”一栏中点击“Make a new shortcut
from this virtual drive”,操作与创建 wordpad 快捷方式相同。



       最后可以删除 wordpad 快捷方式:在“PlayOnMac Configuration”窗口中选中 wordpad
项(注意不要选到你的容器名或者 stc-isp 了),在左下角点击“Remove”即可。
现在,你可以回到 PlayOnMac 主界面运行 stc-isp 了。不过,PlayOnMac 并未提供中
文支持,因此如果将 stc-isp 的语言设置为中文会乱码。一种可能的解决方案是修改虚拟
磁盘中的注册表,但我并未进行测试。

【CrossOver 配置】
       CrossOver 安装方式略。运行后列表应该是空的,这里我由于已经新建了容器所以有
内容。
       安装后在主界面下方点击“Install a Windows Application”,搜索并选择“Microsoft
Visual C++ 6.0 (4.2 & 6.0) Redistributable”。随后进入“Select Installer”页面。如果你有合
适的网络条件(指能稳定访问互联网档案馆 archive.org,因为微软官网已不再提供该文件
的下载)则可保持默认,否则需要点击“Choose Installer File”并选择自己下载的
Vs6sp6.exe(会传到附件)。随后在“Select Bottle”页面选择“New Windows 10 64-bit
Bottle”,在右侧为容器起一个名字。完成后点击“Continue”和“Install”,等待容器创建和
程序安装。安装完成后会提示重启(容器),点击“Yes”即可。





       完成后右键左侧列表中你的容器名,点击“Open C: Drive”,会弹出一个 Finder 窗口,
即虚拟的 C 盘。将 stc-isp 可执行文件拷贝进去即可。
可选操作:返回到上一级目录,使用 TextEdit 或其它文本编辑器打开 cxbottle.conf,
在末尾添加"LANG" = "zh_CN"一行将语言设置为中文。如果你的 CrossOver 软件语言已
经是中文则可跳过此步。



      在 CrossOver 主界面点击“Run command”并选择拷贝进去的 stc-isp 可执行文件,点击
“Run”即可运行。点击“Save command as a Launcher”可以在 CrossOver 主界面和
LaunchPad 生成快捷方式。





【硬件映射】
      在你完成配置后可能会发现并不能在 stc-isp 中找到连接的串口设备,那是因为 Wine
默认并未将串口映射到虚拟的设备中。我们打开虚拟磁盘目录下的“dosdevices”目录,将
串口软链接至此即可,即:

ls /dev
cd <你的 dosdevices 目录>
ln -s <设备地址> <串口号>
       其中第一行用于列出与电脑连接的所有设备,其中串口一般以 tty 或者 cu 开头。第三
行的设备地址即为我们的串口的地址,例如“/dev/tty.usbmodem123456”,而串口号则例
如“com1”。







神农鼎 发表于 2024-1-1 20:22:16




原生非官方的也有:
github/grigorig/stcgal这个是用python写的,理论兼容所有平台;

github/ahappyforest/stc-isp和
github/IOsetting/stc8prog这两个都是用C写的,都是支持linux的

神农鼎 发表于 2024-1-1 20:25:08



GitHub - IOsetting/stc8prog: Open Source STC8G/STC8H ISP flash tool

神农鼎 发表于 2024-1-1 20:27:53





神农鼎 发表于 2024-1-1 20:31:18



stcgal · PyPI

神农鼎 发表于 2024-1-1 20:31:35

占楼

大锤子 发表于 2024-1-2 08:55:52

github/grigorig/stcgal 这个也在platformIO提供的工具链中。

jacksonjim 发表于 2024-1-4 11:12:43

神农鼎 发表于 2024-1-1 20:27

要不要把用go或rust重写现有的stcisp这个工具,这样可以做跨平台,已经有现成的gui框架,兼容多个平台,这样话也可以解决各个平台上使用

wc7086 发表于 2024-1-6 16:28:27

jacksonjim 发表于 2024-1-4 11:12
要不要把用go或rust重写现有的stcisp这个工具,这样可以做跨平台,已经有现成的gui框架,兼容多个平台,这 ...

{:4_167:}win的串口模拟usb驱动都没人维护,重写不太可能

嵌入式之路 发表于 2024-1-6 20:33:53

还有一种办法就是我半个月前用的 在MAC上装个PD虚拟机然后在win环境上烧录
页: [1] 2
查看完整版本: Linux, Mac : STC-ISP 如何运行