We don’t allow questions seeking recommendations for software libraries, tutorials, tools, books, or other off-site resources. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
这确实是一个复杂的课题,有太多的选择和权衡。
就硬件而言,我会选择低端微控制器,因为当它们变得更小时,事情往往会变得更容易,而且离桌面越远,你就越能了解嵌入式编程的思维方式。
由于您在日本,最好在当地检查哪种控制器流行,这样您可以获得良好的社区支持并可以轻松购买零件。
在德国,它是AVR ATMEGA,我认为这是一个不错的选择。 它拥有 GNU 工具的最佳支持,采用 DIP 封装,并且可以通过其内部振荡器运行,因此可以轻松地在面包板上运行。 最大的障碍是我需要一名 ISP 程序员。 有一个很好的德语教程。
我还有瑞萨的 R8C,它在日本可能更受欢迎。 让 GNU 工具运行起来比较困难,我必须自己从源代码构建它们。 对于 MS-Windows,有免费的 IAR Kickstart 套件,代码大小限制为 4KB。 它可以使用串行接口(但具有 TTL 电平)进行编程,我为此准备了一个 FTDI USB 转串行模块。
至于RTOS,看看OSEK,有几个免费的实现。
它可以用在非常小的控制器上。
你也可以自己写一个基本的RTOS,这并不难,而且你学到的东西最多。
This is really a complicated subjects, there are so many choices and trade-offs.
With respect to hardware I would go for a low-end micro-controller, because things tend to become easier when they become smaller, and the farther away from the desktop the more you learn the mindset of embedded programming.
Since you are in Japan it is probably best to check locally what controller is popular, so you get good community support and can easily buy parts.
Here in Germany it is AVR ATMEGA, and I think it is a good choice. It has the best support by GNU tools, it is available in DIP packages and can run off its internal oscillator so it can easily be run on a breadboard. The biggest hurdle was that I needed an ISP programmer. There is a good tutorial in German.
I also have an R8C by Renesas, which might be more popular in Japan. It is harder to get the GNU tools running, I had to build them myself from source. For MS-Windows there is the free IAR Kickstart suite with code size limited to 4KB. It can be programmed with a serial interface (but with TTL levels), I got a FTDI USB-to-Serial module for that.
As for RTOS, take a look at OSEK, there are several free implementations.
It can be used on very small controllers.
You could also write a basic RTOS yourself, it is not that difficult and you learn the most.
您不需要学习特定的 RTOS,他们针对市场细分了无数的嵌入式 RTOS,即使您知道您要从事的确切细分市场,仍然有许多操作系统在同一细分市场中运行。
重要的是了解操作系统的基本概念,并有很强的C背景。
当我们招聘时(我们是嵌入式开发公司),我们不需要任何嵌入式编程或特定操作系统的特定知识。 我们正在寻找能够编写完美的 C 代码并且能够学习的聪明人。
You don't need to learn a specific RTOS there is zillions of embedded RTOS they segmented to markets niches and even if you know the exact segment you are going work on there is still a lot of OS's operating in same segment.
The important thing is to understand a basic concepts of operating systems, and have a strong C background.
When we are recruiting (we are embedded development house) we do not require any specific knowledge in embedded programming or specific OS. We are looking for smart ppl that write perfect C code and capable to learn.
除了使用硬件之外,别无选择。 软件用你自己的双手。 幸运的是,这很容易实现。 AVR芯片的简单开发板可以在网上花几十美元购买(例如STK500< /a> 或 Arduino)及其整个软件工具链是开放且可下载的。
关于操作系统 - 无需操作系统即可启动! 许多嵌入式代码无需操作系统即可运行,这也是开始编程的最佳方式。 通过尝试各种编写非操作系统代码的技术,您将学会了解何时以及为何需要操作系统,以及如何最好地使用它。
There's no alternative for playing with the hardware & software with your own hands. Luckily, this is easy to achieve. Simple development boards for AVR chip can be bought for a few dozens of $$s online (like STK500, or Arduino) and their whole software toolchain is open and downloadable.
Regarding the OS - start without an OS! Lots of embedded code runs without an OS, and it's also the best way to start programming. By experimenting with various techniques of writing non-OS code you'll learn to appreciate when and why you need an OS, and how to use it best.
我推荐 Quantum Leaps Platform 和 Quantum Framework。 这是一个复杂的状态机环境,需要极低的占用空间。 它也可以在 Windows 上运行(供学习)。
量子飞跃网站
I would recommend Quantum Leaps Platform and Quantum Framework. It's a sofisticated state machine environment that requires extremely low footprint. It can also run on Windows (for learning it).
Quantum Leaps Website
您首先需要弄清楚您想了解嵌入式系统的哪些内容。
*) 硬件细节
*) 操作系统
*) 应用程序编程
*) 董事会调出
*) 小型微控制器
*) Linux
...以及更多选择...
我会决定完成某个嵌入式项目并购买/学习相关技术。
You first need to figure out what you want to learn about embedded systems.
*) hardware specifics
*) operating system
*) application programming
*) board bring up
*) small micro controller
*) Linux
...And many more choices...
I would decide to complete a certain embedded project and buy/learn the associated technologies.