0

我的公司正在从汇编编码的微控制器过渡到 C。我们正在考虑 Microchip、Atmel、Renasas 等。人。用于使用 C 代码的未来项目。是否有很好的培训资源可以让我们的工程师跟上 C 的速度?研讨会,讲师,课程等。工程师的经验水平从没有培训到有些知识不等。

4

11 回答 11

8

欢迎来到 80 年代。:) 从经典的 K&R C 书或我最喜欢的 C:Harbinson & Steel 的参考手册开始,如果你能找到的话。我使用 PIC,并且有几本关于 PIC 编程的有用书籍。我已经通过使用 PC 熟悉了 C,但我发现它们在这方面没有用。

C 允许您接近汇编程序,并且大多数编译器都可以将其包含在内,因此它与任何高级语言一样接近汇编程序。我想你应该很快就开心起来,很快就到家了。

如果您有兴趣向前发展几十年;>)您可能需要考虑使用 Microchip C 编译器。我很快就会对此进行研究,并且有一本关于C/C++ 中实用状态图的好书。

于 2008-11-06T20:12:07.187 回答
3

好消息是,如果您的工程师有汇编背景,那么一些“C”语言概念,例如指针和数组,将不难掌握(希望掌握。)

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

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

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

这应该给你足够的时间咀嚼。

于 2008-11-07T03:51:26.120 回答
2

当然,你应该检查http://arduino.cc

http://arduino.cc/en/Tutorial/HomePage

高温高压

于 2008-11-08T02:05:02.203 回答
1

为什么要提到 16 位?

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

实际上,我认为一些 8 位控制器的使用寿命会比 16 位控制器更长。与 16 位或 32 位控制器相比,前者的优势可能在于尺寸。您无法将 ARM 控制器放入 2.9x1.3 mm SOT23 封装中。此外,较小的 8 位控制器仍然比最小的 ARM 便宜。

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

我会看看ARM。ARM7TDMI 是稳定的,可从多家供应商处获得多种配置。我可以推荐 NXP LPC2000。起价约为 1.50 美元,对于 32 位控制器来说还不错。

于 2009-02-15T19:04:02.687 回答
1

是否有很好的培训资源可以让我们的工程师跟上 C 的速度?

对于初学者, Bruce Eckel 的“Thinking in C”多媒体课程免费提供了对 C 系列编程语言的非常好的和非常完整的介绍 (下载大小约为 100 兆,课程本身是闪存) .

于 2009-03-13T22:12:21.977 回答
1

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

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

MPLAB 有一个内置的模拟器来运行这些程序。您可以旋转输出引脚以查看事物的移动。

于 2008-11-06T20:45:30.910 回答
0

For 16-bit Microchip pics, there is

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

IIRC it was decent, but they focus pretty heavily on doing one thing per chip. Our apps multiplex a lot of I/O, and for that the examples/casestudies in the book (that assumed exclusive use) were hard to bring to practice.

When I started with this architecture, having a readily made example board (from Microchip, $50-$100 range) really helped, specially if you target roughly the same variant as the example board.

This because it offered an easy check if a problem was hardware or software related by running it on the example board.

于 2009-05-08T10:28:59.200 回答
0

msp430 是 C 语言中最好的微控制器之一。但你最好的选择就是选择 ARM,它们很快就会消除剩余的竞争。Microchip 已经抓住了一个 32 位内核来竞争,但我认为他们最终会成为失败者。随着 32 位 ARM 满足并击败了疲倦的 8 位微控制器(如 PIC 和 8051 和 z80)的价格,除了 msp,您应该避免停在 32 位内核以下的任何东西上。

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

至于学习 C,如果你知道汇编比任何其他语言包括汇编只是语法。我相信你需要的一切都可以通过谷歌在线找到。一旦你选择了一个评估板和一个微型(Stellaris 有一些好东西),首先研究他们的示例程序,然后使用谷歌查找其他示例程序并从那里开始。特别是对于微控制器,但总的来说,您希望避免任何语言的绝妙功能,坚持使用简单、基本的东西,在任何编程语言中都是相同的东西。您遇到的编译器,尤其是专门为微型计算机构建的编译器,不会处理像 gcc、microsoft 或 borland 这样的极端情况。这也将使您的代码更易于移植到其他 micros 或其他语言(不过,我会避免使用 asm 和 C 之上的任何内容,尤其是微型)。如果您必须拥有一本书,请购买 K&R 或任何正在使用的替代品。请注意,直接出自第一版的 K&R C 不会真正在任何地方编译。但它保持基础,让你远离语言的问题领域。

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

于 2008-11-08T01:59:26.613 回答
0

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

除了其他帖子中提到的处理器,ST 的 STM32 系列也非常值得一看。它们是 32 位的,极具成本效益,并且有多种封装。

ST 似乎正在努力让人们快速使用他们的产品,并推出了STM32 Circle等开发硬件。

于 2009-05-11T22:33:40.297 回答
-1

有很多关于学习 C 编程的书籍,尤其是对于您提到的架构。通过搜索“微控制器”查看亚马逊。

此外,Microchip 为其特定的编译器和芯片举办了很多研讨会/课程——它们通常价格低廉,并且在美国各地有几个培训中心。由于许多工程师需要接受培训,您可以考虑直接联系 Microchip 并了解进行内部培训的费用。

-亚当

于 2008-11-07T03:58:14.373 回答
-1

首先想到的是编写 Linux 设备驱动程序的文档。这与您感兴趣的内容松散相关,但是O'Reilly的这本关于驱动程序编程的书涵盖了 16 位设备的编码。一般来说,至少应该有一些有用的编码风格约定。

于 2008-11-06T19:53:37.707 回答