如何对微控制器进行编程
How to program microcontrollers
嗨,我想对微控制器进行编程,但我真的不知道该怎么做,也不知道该做什么。我根本不知道该在哪里查找我需要的信息。我已经用python编程大约11个月了,我知道如何很好地使用这种语言。我过去用过c++,而且我也知道很多这种语言。
在对微控制器进行编程时,微控制器是否可以使用任何编码语言进行编程,或者微控制器是否只允许使用某些语言?
我有无数的问题,但我不会全部问,如果有人能给我指明正确的方向,我将不胜感激。谢谢
问题出在单词"programmed"上。微处理器(你指的是CPU,对吧?)通常执行特定于其硬件平台的机器代码。机器代码只是从内存中读取的字节,并以一种特殊的方式进行解释。这是处理器可能被编程的最低级别(有一天是这样编程的)。
现在,由于以这种方式对处理器进行编程非常不方便,因此发明了所谓的"汇编语言"。基本上,它们只是定义机器代码的符号表示和它们的解释规则集。然后,一个称为翻译器的特殊程序获取一组文本文件,其中包含用汇编语言编写的程序的定义,并生成一些,其中包含机器代码,可能由目标处理器执行。(这个"东西"的定义很难,我们不要离题。)
现在有了更高的层次—像C
(以及在较小程度上的C++
)这样的语言,它们试图抽象特定硬件平台的细节,并允许专注于算法和数据格式,而不是处理特定的处理器。显然,这将特定H/W平台的知识转移到编译器—一种程序,它接收用高级语言编写的程序文本,并生成可由目标处理器运行的内容。
现在有另一个更高的层次,它包括几乎完全抽象出H/W平台的任何特殊性的语言。当您阅读Stack Overflow时,浏览器中运行的JavaScript就是一个很好的例子—其中的程序仍然由运行浏览器的设备的处理器执行,但这些JS脚本和处理器之间有许多复杂的代码层。
到目前为止,你应该看到你的问题还没有明确的答案。如果你想涉足卧室电脑CPU的低级代码,那么在谷歌上搜索"x86汇编程序"、"英特尔汇编程序"等。这是一个良好的开端。如果要对其他处理器进行编程,则要使用的搜索查询将是类似的。相反,如果你想编程一些像AVR这样的专用处理器,那么从产品手册开始,因为它们通常带有专用工具。
如果你有兴趣掌握基本的实用知识,比如你说的"喜欢做一些基本的事情,比如制作LED闪光灯等。"
选择基本的微控制器,比如说从8051系列中,我们将采用89c51(NXP/Atmel取决于可用性)。首先浏览用户手册,它将为您提供关于它的简要想法(总体架构)。关于编程,您将只在手册中找到LED闪光灯的基本代码(可能)。如果您使用的是NXP微控制器,Flashmagic软件可以在互联网上免费获得,您可以下载。在IDE(如keil)中,不要忘记在完成编码后创建".hex"文件。现在打开Flashmagic,在其中加载.hex文件,并为您编写的特定代码烧录您的微控制器。
祝你好运!!
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 模板元编程:如何将参数包组合成新的参数包
- Qt Q串行端口未编程设备未关闭
- 模板元编程 - 尝试实现维度分析
- 我是编程新手
- 对于四轴飞行器,PID中I控制器的理想值应该是多少
- C++编程从外部文本文件定义数组大小
- 了解算法的性能差异(如果以不同的编程语言实现)
- 使用 Gtkmm 以编程方式选择 Gtk::TextView 中的文本
- 如何集成 HID USB 控制器?
- 如何将可变参数模板转换为多个单个模板?(C++竞争编程调试模板)
- 编译 libfluid 样本控制器时对"event_base_del_virtual"的未定义引用
- 使用命名空间正确编程
- C++编程:运算符重载中的引用如何工作?
- Arduino 模块化编程与全局和设置
- C++ 运算符修改/元编程策略,用于不那么冗长的语法
- 更高效地在微控制器上对C++进行基准测试
- 如何对微控制器进行编程
- Micro控制器编程