跳转到主要内容

单片机编程语言及应用技巧解析

cathy /

<strong>1、C语言和汇编语言在开发单片机时各有哪些优缺点?</strong>

汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。

C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。

对于目前普遍使用的RISC架构的8bit MCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一条指令就对应一个机器码,每一步执行什么动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在单片机开发中,我们还是建议采用汇编语言比较好。

<strong>2、C或汇编语言可以用于单片机,C++能吗?</strong>

在单片机开发中,主要是汇编和C。

<strong>3、搞单片机开发,一定要会C吗?</strong>

【技术干货】单片机入门:单片机的编程语言和开发环境

cathy 提交于

本连载讲解作为嵌入式系统开发技术人员所必需具备的基础知识。这些基础知识是硬件和软件技术人员都应该掌握的共通技术知识。

在“单片机入门(1)”和“单片机入门(2)”中,我们学习了单片机硬件方面的知识。本期我们将学习开发环境和编程语言吧。

<strong>CPU懂的机器语言</strong>

单片机的CPU从存储器读取程序,但是一次只能读取一条指令,然后解释每条指令,并执行。存储器中保存的内容,不管是程序还是数据,都是二进制代码“0”和“1”组成的字符串。指令二进制代码告诉CPU要做什么,而数据二进制代码则是CPU操作或处理指令时要使用的值。CPU的操作包含加、减运算等指令。这些像密码一样排列的“0”和“1”字符串就是机器语言。比如图1左边显示的就是一个机器语言指令,意思是“将2放入寄存器A(寄存器是CPU内部的储存区域)。

CPU总是按存储器地址的顺序读取指令代码,除非遇到跳跃指令。例如,如果复位后的地址是0000,则从0000开始按0001、0002、0003的顺序读取并执行指令。也可以说,一个程序就是按处理要求排列一系列的机器语言。

机器人10大流行编程语言对比,你掌握了哪种?

editor Chen /

这是一个许多新入行的机器人专家在他们职业生涯中至少会问一次的问题。不幸的是,这也是一个没有简单答案的问题。在本文中,我们将会审视在机器人学中最流行的10种编程语言,深入探讨它们各自的优缺点以及使用和弃用它们的原因。

这实际上是个很有道理的问题——毕竟,如果你从不付诸实践,那为什么要花大量的时间和精力去学习一种新的编程语言呢?如果作为一名机器人学新人,你当然会想学习一种确实对你的职业生涯很有用的编程语言。

<strong>为什么“这个取决于。。。”是个毫无用处的回答</strong>

不幸的是,如果你去问一屋子的机器人学专家或者在像Stack Overflow、Quora,Trossen,Reddit、 Research Gate这样的论坛上问“什么是机器人学中最好编程语言?”,你永远不会得到一个直接的答案。

电气工程师会从工业机器人技术这个角度给出不同的答案。计算机视觉程序员给出的答案会跟认知机器人专家给出的不一样。而且,每个人都会对什么是最好的编程语言有自己的看法。最终,大多数人都会赞同的答案就是”这个取决于。。。“。对于一个新入行正在试图决定要先学哪种语言的机器人学者来说,这是一个相当无用的答案。即使这是最现实的回答——因为它的确取决于你想要开发的应用程序和你在使用的系统。

基于10大编程语言的30个深度学习库

editor /

<br>作者:李泽南 来源:机器之心</br>

本文介绍了包括 Python、Java、Haskell等在内的一系列编程语言的深度学习库。

<strong><font size="5">Python</font></strong>

Theano 是一种用于使用数列来定义和评估数学表达的 Python 库。它可以让 Python 中深度学习算法的编写更为简单。很多其他的库是以 Theano 为基础开发的:

Keras 是类似 Torch 的一个精简的,高度模块化的神经网络库。Theano 在底层帮助其优化 CPU 和 GPU 运行中的张量操作。

Pylearn2 是一个引用大量如随机梯度(Stochastic Gradient)这样的模型和训练算法的库。它在深度学习中被广泛采用,这个库也是以 Theano 为基础的。

Lasagne 是一个轻量级的库,它可以在 Theano 中建立和训练神经网络。它简单、透明、模块化、实用、专一而克制。

Blocks 是一种帮助你在 Theano 之上建立神经网络模型的框架。

开发者应该了解的五种全新编程语言

kelly /

<br>从全面并发到可执行文件部署,这些新型语言绝对值得大家加以关注。为什么要创造一种新语言?这倒并不是说我们就一定需要这种语言。</br>

但新的编程语言确实会从新的角度审视开发者、IT管理员以及其他相关人员所面临的问题。因此,我们也有必要关注那些希望以新的视角解决固有障碍的新型语言。

另外,新语言的诞生也未必只关注语言本身,有时候其关注重点在于语言所提供的环境。谷歌的Go与Mozilla的Rust语言并不提供新语法,但却带来了新的工作链与项目管理策略。

下面来看编程语言领域的五位后起之秀,它们都在以创造性的方式试图解决实际或者理论层面中的难题。

<strong>Stanza 0.8.22</strong>

要点:亦被称为L.B. Stanza,此项目由加州大学伯克利分校开发,在语言当中高度强烈拆分这一理念。

Stanza可编译为本地代码,但并不要求特定类型。在添加之后,该语言能够自动执行极为强大的代码检查机制。另外,它还利用一套不涉及类的对象系统——其实际使用方法与函数——并能够显著降低协同例程的并发难度。

类似语言:Python、Ruby且在某种程度上类似于函数语言

11款物联网编程语言,看看你的项目选哪个?

kelly /

<br>对于物联网项目而言,选择编程语言的重要意义绝不在制定硬件平台决策之下。在今天的文章中,我们将共同审视11款编程语言,并认真考量哪一种最适合自己的下一个编程项目。</br>

物联网开发项目目前正在全球范围的诸多企业当中如火如荼地展开。新型硬件平台的出现让工程师们能够以前所未有的便捷方式在物联网应用当中构建嵌入式系统。一旦选定了合适的硬件平台,接下来要做的就是为其开发应用软件——先别高兴得太早,到了这一步摆在我们面前的选项会更多、也更具挑战。

原来编程语言的选择还受到硬件平台方案的严格约束。不过时至今日,多数现代平台已经基于开源标准并能够支持多种编程语言类型,这样出色的灵活性自然带来了更多潜在选项。而这也正是我们今天所要解决的问题。

那么我们应该如何为特定物联网项目选择编程语言呢?在某些情况下,我们的潜在选项仍然会受到当前硬件平台的限定。不过在其它条件下,大家完全可以立足于特定因素选择语言类型,例如企业开发团队对该语言的熟悉程度、其能够在业务环境中整体物联网系统的其它组件所使用,或者其代码成果是否体积更小、执行效率更高或者编写速度更快等等。