C 16位微控制器培训

时间:2008-11-06 19:50:10

标签: c assembly embedded microcontroller

我的公司正在从汇编编码微控制器转换到C.我们正在考虑Microchip,Atmel,Renasas等。人。用于未来使用C代码的项目。是否有良好的培训资源可以让我们的工程师快速掌握C?研讨会,讲师,课程等。工程师的经验水平从无培训到知识各不相同。

11 个答案:

答案 0 :(得分:8)

欢迎来到80年代。 :)从经典的K& R C书或我最喜欢的C:Harbinson&钢铁,如果你能找到一个。我与PIC合作,有几本关于PIC编程的有用书籍。我已经熟悉使用PC的C,我觉得在这方面没有用。

C允许您接近汇编和大多数编译器将其包含在内联中,因此它与任何高级语言一样接近汇编程序。我想你应该很快乐和在家。

如果您有兴趣向前推进几十年;>)您可能需要考虑Microchip C编译器。我很快就会对此进行调查,Practical Statecharts in C/C++上有一本好书。

答案 1 :(得分:3)

好消息是,如果你的工程师有装配背景,一些'C'语言概念,如指针和数组,将不难掌握(并希望掌握。)

关于嵌入式C培训的具体问题, Netrino 有一系列嵌入式培训课程,包括用C和C ++编写嵌入式代码。

此外,嵌入式系统会议(几周前刚在波士顿有一个,下一个是明年春天在硅谷,我认为)总是充满了关于嵌入式开发的课程。不同的语言。但是你可能没有等待6个月的奢侈。

如果您的员工更多是“图书学习者”类型,那么这些书可能会引起您的兴趣:

这应该足以让你咀嚼一会儿。

答案 2 :(得分:1)

要开始使用,我建议使用Microchip的MPLAB和C编译器的“学生”版本。

C编译器在到期后运行时没有进行优化。

MPLAB有一个内置的模拟器来运行程序。你可以通过旋转输出引脚来看东西移动。

答案 3 :(得分:1)

答案 4 :(得分:1)

为什么提到16位?

如果是因为你认为8位是20世纪,你是对的。但16位也是如此。今天的32位控制器(特别是ARM)功能更强大,而且通常比16位控制器便宜。更便宜,因为一些16位钻头使用过时的工艺,具有较大的特征尺寸,因此模具较大。

实际上我认为一些8位控制器的寿命比16位控制器长。前者超过16或32位控制器的优点可能是尺寸。你无法将ARM控制器放在2.9x1.3 mm SOT23封装中。此外,较小的8位控制器仍然比最小的ARM便宜。

对我来说,使用16位控制器的唯一原因是安装代码,但是既然你提到了一些你正在“考虑”的品牌,我认为你现在还没有使用它们。

我会看看ARM。 ARM7TDMI非常稳定,可从多个供应商处获得多种配置。我可以推荐恩智浦LPC2000。起价约为1.50美元,对于32位控制器来说也不错。

答案 5 :(得分:1)

  

是否有良好的培训资源可以让我们的工程师快速掌握C?

对于初学者来说,Bruce Eckel的"Thinking in C" multimedia course提供了一个非常好且非常完整的C系列编程语言介绍 免费 (下载大小约为100兆,课程本身也是闪存)。

答案 6 :(得分:0)

msp430是C的最佳微处理器之一。但你最好的选择是与ARM合作,它们将很快消除剩下的竞争对手。 Microchip已经抢占了一个32位核心竞争,但我认为他们最终将成为一个竞争对手。使用32位ARM满足并击败疲劳的8位微控制器(如PIC和8051和z80)的价格,除了msp之外,你应该避免在32位内核以下的位置停止。

它不是最好的也不是最有效的编译器,但价格合适,没有其他编译器能像gcc一样得到支持。为许多平台构建或下载预构建的gcc相对容易。我会避免陷入任何需要制造商IDE和工具的东西。这些工具很好,在某些情况下需要开始使用微型工具,但从长远来看,您可能希望探索替代方案的优缺点。

至于学习C,如果你知道汇编程序比包括汇编程序在内的任何其他语言只是语法。我相信你需要的一切都可以通过谷歌在线找到。一旦你选择了评估板和微软(stellaris有一些好东西),首先要研究他们的示例程序,然后使用谷歌查找其他示例程序并从那里开始。特别是微控制器,但一般来说,你想要避免任何语言的gee whiz功能,坚持简单,基本的东西,任何编程语言相同的东西。你经历的编译器,尤其是用于微型的专用编译器,不会像gcc或者微软或者borland那样处理角落的情况。这也将使您的代码更容易移植到其他微型或其他语言(我会避免任何上面的asm和C,特别是微软)。 如果您必须有一本书,请购买K& R或其他任何用作替代品的书。请注意,K& R C,直接出自第一版,不会在任何地方编译。但它始终坚持基础,让您远离语言的问题区域。

Linux设备驱动程序的级别非常高(几乎在应用程序级别,大部分代码与“金属”无关)。你不打算在micro上运行linux,甚至是微型的ARM,学习linux设备驱动程序对于其他目标来说是一个很好的练习,但对于这个目标却不行。你想不惜一切代价避免操作系统特别是linux和windows,你想学习非操作系统C编程。看看WINARM的例子。 (这包括RTOS)。

答案 7 :(得分:0)

对于16位Microchip图片,有

http://www.amazon.com/Programming-16-Bit-PIC-Microcontrollers-Technology/dp/0750682922

IIRC它很不错,但他们非常注重每芯片做一件事。我们的应用程序复用了大量的I / O,为此,本书中的示例/案例研究(假设独占使用)很难实现。

当我开始使用这种架构时,拥有一个简单的示例板(来自Microchip,50美元至100美元的范围)确实有所帮助,特别是如果你的目标大致与示例板相同。

这是因为通过在示例板上运行它可以轻松检查问题是硬件还是软件相关。

答案 8 :(得分:0)

有些公司专门为嵌入式系统教授C语言,例如英国的Feabhas或美国的Netrino。浏览网页。

除了其他帖子中提到的处理器外,ST的STM32系列值得一看。它们是32位的,极具成本效益,并且有各种各样的软件包。

ST似乎正在努力让人们快速启动并运行他们的产品,提出像STM32 Circle这样的开发硬件。

答案 9 :(得分:-1)

首先想到的是编写Linux设备驱动程序的文档。这与您感兴趣的内容有很大关系,但this O'Reilly关于驱动程序编程的书中介绍了16位设备的编码。一般来说,至少应该有许多有用的编码风格约定。

答案 10 :(得分:-1)

有许多关于学习C编程的书籍,特别是对于你提到的架构。查看亚马逊搜索“微控制器”。

此外,Microchip还为他们的特定编译器和芯片提供了大量的研讨会/课程 - 它们通常很便宜,而且美国有很多培训中心。由于许多工程师需要接受培训,您可以考虑直接联系Microchip,了解内部培训的成本。

- 亚当