RYMCU

小白关于IDE问题

devcui 1 年前
# 编辑器 # ide

1.如何选择 IDE?

1.1 IDE 分类

首先,关于 MCS51 的

  • 1.微软 Vscode
  • 2.jetbrains Clion
  • 3.keil5

1.2 IDE 差别

以上编辑器如何作出选择呢,首先

VscodeClion 都是基于 PlatformIO 插件,集成了一些关于 51 单片机配置,C 语言必要文件头等,但 Vscode 网络要求较高,Clion 是一款专门写 C/C++ 的编辑器需要自己折腾一下才可以使用,过程中一定会遇到问题,如有问题,请在 github 的 iss 中留言,或直接在下方进行回复,我会一一作答。

其次 keil5 比较专业基本上下载安装完成就可以进行开发测试了,网络上教程也比较多,新手适用。

最后,无论选择何种编辑器,都请不要瞧不起任何其他的编辑器和使用其他编辑器的人,这和 php是世界上最好的语言 问题一致,非常可笑,工欲善其事必先利其器,但利何种还不是你说了算吗。

就比如我本身还在用记事本写 mcs51 代码。

2.抽象理解编程开发

2.1 环境

什么是编程 ? 简单的理解成: 使用代码操作计算机自动做一些事情。

计算机如何理解你写的代码呢,需要一个 中间层做转换,最后将你写的 abcdefgxxxxx 转换成 汇编语言 转换成 01 这样它就会理解了。

如何做中间层转换呢,比如 A 说中国话,B 说英语,那么为了达到 A,B 相互理解,我们找即会翻译英文又会翻译中文的 C 帮忙就好了。C 的工作,就类似于 我们所为 装环境 这个 环境 所做的事情。

比如,Java 拥有 Jvm,Golang 拥有 go build,C 拥有 gcc,Typescript 拥有 tsc,这些语言编译工具做的工作就好比 C 一样。

2.2 语言

和日常生活不同的是,我们出生自带一门语言,而对于计算机我们不会说话,所以要先学说话,比如 C 的输出是 print(),Typescript 的是 console.log(),学习那种说话的本领,哪门编程语言,看你自己喜欢什么就学什么好了。

一门编程语言无非是 特性,流控,变量,类型,运算,常用代码库,代码库下载 这些知识

好了,现在我们学会了一种说话的方式,又拥有了 转译的工具(环境),那么我们在这个环境中就可以随意和计算机进行对话了。

2.3 过程抽象

以上抽象出两个基本步骤

  • 1.获取环境
  • 2.学习语言

3.我如何进行开发

我不会分解出第一步如何做第二步如何做,这样的学习本身没有意义,只分享我思考问题的过程

1.mcs51 需要什么环境,谁做转译?
2.用什么语言去写呢?
3.因为不是计算机本身,如何把写好的东西放到板子里呢?

3.1 编译工具

第一个问题,我找到了 SDCC 并查阅了 SDCC 的相关资料

image.png

于是乎我就明白了,mcs51 是用 C 语言写的,用 SDCC 进行转译,然后我去安装了 SDCC,最后拿到了计算机能理解的文件

前两个问题解决了,那么思考第三个问题

3.2 传递程序到板子里

百度给出的答案是 stcgal,于是乎就去找如何安装 stcgal,以及 stcgal 如何使用

image.png

三个问题都解决了,至于用什么 IDE(编辑器)还重要吗?
用记事本就可以写了,但是写着写着觉得记事本背景太白了,就换成了其他的编辑器

image.png

如图,这是我用 vim 自己搭的一个编辑器,纯写代码,至于 转译,写文件到板子里 基于 sdcc,stcgal 用了最原始的方法

用 sdcc 转译 (为了好理解所以说转译,确切的叫编译):sdcc ./src/led/led1.c -o /Users/ferried/Projects/mcs51/out/out.ihx

用 stcgal 刷程序,python3 ./tool-stcgal/stcgal.py -a -P stc89 -b 9600 -p /dev/tty.usbserial-14120 out/out.ihx

4.结尾

以上就是针对于编程和 IDE 的浅解,有问题下方留言。

5.来点启发

思考一下 🤔

Q:
stcgal 是 python 写的,利用 串口通信库 将文件刷入了单片机中
那么,假如我不喜欢 python,那么如何用自己喜欢的语言去实现 一个 stcgal 呢?

A:
是不是你既要会 python 又要掌握 你喜欢用的编程语言串口通信库,然后以你自己为编译器 (先用python理解stcgal实现方法,在用你喜欢的语言和理解来的实现方法结合,写出自己的stcgal),将 python stcgal 的功能搞到你喜欢的编程语言中去呢,这个就是所谓的 移植

后发布评论

哇哦,理解的真深刻,学习了!👍

作者

关于最原始的mcs51书写方法 见 https://github.com/devcui/sdcc-include 也许能给你点启发?