ide编辑器·

小白关于IDE问题

devcui

devcui

2358 2

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的相关资料

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

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

3.2 传递程序到板子里

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

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

如图,这是我用 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的功能搞到你喜欢的编程语言中去呢,这个就是所谓的移植

相关文章

优先推荐同专题、同标签和同作者内容,补足热门文章。

评论 2

登录 后参与评论

评论 2

devcui
devcui3月26日 22:34

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

Hugh
Hugh3月27日 10:04

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