需要一些学习嵌入式系统的动力

发布于 2024-09-01 16:35:16 字数 538 浏览 4 评论 0原文

我对构建嵌入式设备应用程序非常感兴趣。我正在攻读电气工程专业的第三年,我对编码、算法、Linux 操作系统等充满热情。通过 Google 搜索,我发现 Linux 操作系统是嵌入式设备最好的操作系统之一(可能是/可能不是) )。我想为从事移动应用程序的公司工作。我是这个领域的新手/天真的人&我的技能包括 C/C++ 和MySQL。我需要帮助才能进入嵌入式系统领域;比如如何/从哪里开始、硬件先决条件、必要的编程技能、以及什么样的嵌入式应用程序等。我听说过 ARM、固件、PIC 微控制器;但我什么都不知道&只需要对它们进行适当的介绍。

PS:我目前正在德克萨斯 A&M 大学阅读 Bjarne Struotsup 的 C++ 讲座,其中一篇其中的章节介绍了嵌入式系统编程

I'm very much interested in building applications for Embedded Devices. I'm in my 3rd year Electrical Engineering and I'm passionate about coding, algorithms, Linux OS, etc. And also by Googling I found out that Linux OS is one of the best OSes for Embedded devices(may be/may not be). I want to work for companies which work on mobile applications. I'm a newbie/naive to this domain & my skills include C/C++ & MySQL. I need help to get started in the domain of Embedded Systems; like how/where to start off, Hardware prerequisites, necessary programming skills, also what kind of Embedded Applications etc. I've heard of ARM, firmware, PIC Micorcontrollers; but I don't know anything & just need proper introduction about them.

P.S: I'm currently reading Bjarne Struotsup's lecture in C++ at Texas A&M University, and one chapter in it describes about Embedded Systems Programming.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

記柔刀 2024-09-08 16:35:16

我会完全避免使用操作系统,嵌入式 Linux 是一个矛盾的说法,你到底在学什么?您可以通过家用计算机学到同样的东西。

是的,ARM 是嵌入式领域的王者,而且可能会持续一段时间,最终你需要看看。

Sparkfun.com 是一个很棒的网站,他们提供许多 olimex 板以及 arduino 衍生品等其他板。与 avr 相比,我更喜欢 msp430,但 avr 更受欢迎。

在sparkfun 外面直接查看来自TI (msp430) 的ez430 或来自digikey 或mouser。 Stellaris 有很多不错的板,811 很容易变砖,我的第一个只持续了几个小时,哎呀,我应该读一下盒子里所有东西上粘贴的 17 个警告标签,不要碰那些 jtag 上的启用或方向线。 stellaris 在板上包含了大量的东西,是学习嵌入式编程、阅读原理图、阅读数据表和程序员参考手册的非常好的平台,了解所有原理图和参考手册都有点错误,你必须破解它。如果你想要一些东西来构建你自己的项目,尽管你必须切掉(不是字面上的)板上的好东西,所以我会使用 olimex 头板来添加你自己的电子设备。

回到 Sparkfun。 olimex 头板很好,不到 50 美元,有各种 Arm 供应商的代表(除了 ti/stellaris)。 Arduino pro mini 售价不到 20 美元。腋臭专业版不错。避免使用 mbed2 和 lpcxpresso,也许同时避免使用 lpc(armmite pro 除外)。

qemu 也是一个很好的模拟器,但不像 Armulator 或我的拇指模拟器那样容易深入了解代码在做什么。但是有很多rtose和linux在上面运行(arm和其他处理器都是模拟的),arm集成器评估板是一个流行的目标,是由qemu模拟的。 Arm 内有许多由 qemu 模拟的评估板。

beagleboard 很受欢迎,但我对我的 beagleboard 和总是创新的上网本感到非常失望。为了使 beagleboard 变得有用,还需要花费 100 - 150 美元。 Embest 有一个更好的 beagleboard 克隆版本,开箱即用。与 beagleboard 相比,我更喜欢 hawkboard.org,它慢一点,价格只有一半,但是更好。您可以在 Linux 或真正的嵌入式(无操作系统)或任何您喜欢的操作系统上工作。基于 TI omap,芯片上还有一个 DSP,以防您对此感兴趣。

我不喜欢这张照片,并且已经并且将会因此而受到批评,但这并不困扰我。我建议学习 msp430、avr、arm、thumb(和 pic)的汇编程序,真正的嵌入式总是涉及一点汇编程序来至少管理启动过程、中断处理等。 msp430和arm非常适合C编译器的指令集,pic和8051一样可怕,这并不意味着没有C编译器,它只是效率非常低,并且添加高级语言会使结果变得更糟。图片资源非常有限。 pic32 是 mips 的衍生物,而不是我正在谈论/抱怨的。这是一个完全不同的设备系列和类别。考虑到汇编器和 C、尺寸、功率、功能等方面的选择,我会选择 msp430 而不是 pic。Mips

可能是 Arm 最大的竞争对手,遗憾的是它是我没有机会学习的平台。

8051、6501 和 pdp11 使用的 lsi11 是历史上的一次美好之旅。 lsi11 是 C 语言的发明基础,您可以看到汇编程序和 C 之间的相似之处。msp430 指令集具有相同的感觉,msp430 和 lsi11 都是适合初级汇编程序的出色指令集。 8051 可能是现存最古老的主力,它曾经是占主导地位的嵌入式处理器,并且仍然可以在新的芯片产品中找到它的身影。就像图片一样,指令集是河内塔拼图,进出累加器,进出,进出几条指令来做任何有用的事情。 sdcc 是一个免费的 8051 C 编译器,如果您想深入了解编译器的内部结构并有机会理解它(无需购买书籍或参加课程),它的大小正好合适。

我是 Gameboy Advance 和 nintendo ds 的忠实粉丝,GBA 更容易,两者都有模拟器,尽管它们适合玩 ROM 游戏,但不一定能完美地模拟您可能为自制程序开发所做的事情。除了mini之外,gba还有串口,使调试变得更加容易(mini有一个,但获取它更困难)。如果可以的话,从 GBA 开始,更便宜,更容易,一旦您掌握了 DS 的窍门,DS 就是将几个 GBA 捆绑在一起,并带来一些额外的复杂性。

根据您的帖子,不知道成本是否太多,我的猜测是 hawkboard (hawkboard.org) 对于您列出的 Linux、嵌入式、算法和其他项目来说是一个不错的选择。如果没有附带电源和 OTG USB 电缆,请继续获取。如果你像我一样是一名 EE 学生,可能太富有了,看看 arduino pro 或实际上的 lillypad,因为它已经带有引脚,不需要焊接或额外的零件,是的,买 14 美元的 USB 转串口东西。对于 lillypad 和 USB 转串口/电源板的价格,你可以得到一个 armmite pro,除了 USB 电缆之外不需要任何其他东西(我知道它是 lpc,没关系)。我有网页介绍如何从两个平台上删除类似 arduino 的固件并获取处理器,而不是进行脑部手术,非常简单,但初学者可能会犹豫。 ez430 属于同一价格类别,除了 20 美元的套件外,您不需要任何其他东西,另外三个板的价格为 10 美元。如果这太丰富,或者即使不是免费的模拟器,有些模拟器也比在真实硬件上运行更容易调试,因为您拥有源代码并且可以在打印语句或其他内容中进行编译。您可以在不花费任何时间的情况下上手,看看这是否是您真正感兴趣的东西。

请记住,即使是最好的模拟器也不像在真正的硬件上(与在调试器下运行代码相同)。您可能必须在硬件上重新开始您的项目,但这就是嵌入式的乐趣。板提出...

I would avoid operating systems all together, Embedded Linux is an oxymoron, what are you really learning? You could learn the same thing with your home computer.

Yes, ARM is the king of embedded and may remain so for a while, eventually you will need to take a look.

Sparkfun.com is a great site, they offer a number of the olimex boards plus others like arduino derivatives. I prefer the msp430 to the avr, but the avr is more popular.

Outside sparkfun look at the ez430 from TI (msp430) direct or from digikey or mouser. Stellaris has a number of nice boards, the 811 is easy to brick, my first one lasted only a few hours, oops, I should have read the 17 warning labels stuck to everything in the box, dont touch the enables or direction on those jtag lines. stellaris packed a ton of stuff on the boards, very good platform for learning embedded programming, reading schematics, reading data sheets and programmers reference manuals, learning that all schematics and reference manuals are a little buggy and you have to hack your way through. If you want something to build your own projects on though you have to cut away (not literally) goodies on the boards, so I would go with an olimex header board for adding your own electronics to.

Back to sparkfun. The olimex header boards are good, sub $50, the various arm vendors are represented (except for ti/stellaris). Arduino pro mini for under $20. The armmite pro is good. Avoid the mbed2 and lpcxpresso, perhaps avoid lpc all together (other than the armmite pro).

qemu is also a good simulator, not as easy as the armulator or my thumbulator to dig into to see what your code is doing. But there are many rtoses and linuxes that run on it (arm and other processors are simulated), the arm integrator eval board is a popular target and is simulated by qemu. Just within arm there are many eval boards emulated by qemu.

The beagleboard is popular but I was quite disappointed with my beagleboard and always innovating netbook. It cost another $100 - $150 to make the beagleboard useful. Embest has a much better beagleboard clone, that is useful out of the box. I like the hawkboard.org much better than the beagleboard, slower by a bit, half the price, but a better board. You can work on linux or true embedded (no operating system) or whatever you like. Being TI omap based there is a dsp on chip as well in case you have some interests there.

I am not a fan of pic, and have been and will get flamed for it, doesnt bother me. I recommend learning assembler for the msp430, avr, arm, thumb (and pic), real embedded always involves a little assembler to manage the boot process, interrupt handling and the like at a minimum. The msp430 and arm are well suited instruction sets for C compilers, pic is horrible as is the 8051, that doesnt mean there arent C compilers, it is just horribly inefficient and adding a high level language makes the result that much worse. The pics are quite resource limited. The pic32 is a mips derivative and not what I am talking/complaining about. That is a whole other family and category of device. I would go with the msp430 over pic given the choice both for assembler and C, size, power, features, etc.

Mips is probaby arms biggest competitor, sadly it is the one platform I have not had the opportunity to learn.

8051, 6501, and the lsi11 used by the pdp11 are a nice trip down history lane. the lsi11 is what the C language was invented on and you can see parallels between the assembler and C. The msp430 instruction set has the same feel, both the msp430 and lsi11 are excellent instruction sets for beginning assembler. The 8051 is probably the oldest surviving workhorse, it had its day as the dominant embedded processor, and can still be found in new chip products. like the pic the instruction set is a tower of hanoi puzzle, in and out of the accumulator, in and out, in and out several instructions to do anything useful. sdcc is a free 8051 C compiler and just the right size if you want to dig into the guts of a compiler and have a chance at understanding it (without having to buy books or take classes).

I am a big fan of the gameboy advance and nintendo ds, the gba is easier, emulators are out there for both, although are geared toward playing rom games and not necessarily perfect at emulation you might do for homebrew development. the gba's other than the mini have serial ports making debug that much easier (mini has one but getting at it is harder). start with the gba if you can, much cheaper, much easier, once you get the hang of the the ds is a couple of gbas tied together with some extra complications.

Based on your post, not knowing if the cost is too much, my guess is the hawkboard (hawkboard.org) is a good choice for linux, embedded, algorithms and other items you listed. Go ahead and get the power supply and the otg usb cable if it doesnt come with it. If you are like I was as an EE student that may be too rich, look at the arduino pro or actually the lillypad because it comes with the pins already, no soldering or extra parts required, yes get the $14 usb to serial thing. For the price of the lillypad and usb to serial/power board you could get a armmite pro and not need anything else other than a usb cable (I know it is a lpc, its okay). I have web pages on how to remove the arduino like firmware from both platforms and get at the processor, not brain surgery, pretty easy, but first timers might hesitate. The ez430 falls into this same price category, you dont need anything else but the $20 kit, three more boards cost you $10 for the set. If that is too rich or even if not the emulators are free some are much easier to debug than running on real hardware as you have the source code and can compile in print statements or whatever. You can get your feet wet without expending anything but time, and see if this is something you are really interested in.

Remember even the best emulator is not like being on the real hardware (same as running your code under a debugger). You may have to start your project over on hardware, but that is the fun of embedded. board bring up...

如日中天 2024-09-08 16:35:16

通过谷歌搜索我发现Linux操作系统
是最好的嵌入式操作系统之一
设备(可能是/可能不是)

从表面上看,它为您提供了很多功能,而且成本低廉。但是,您必须考虑运行它所需的硬件成本(否则您可能能够使用成本较低的设备),以及您几乎无法控制的大量第三方代码。而且它也不适合硬实时< /a> 应用程序。通过使用 Linux,您将隐含地要求具有 MMU 的 32 位处理器(除非您使用 uClinux 和宽松的内存保护)以及几 Mb RAM 和非易失性存储。

此外,您还可以通过最初不以 Linux 为目标,而是使用 RTOS 或实时内核(例如 FreeRTOS、QNX、VxWorks、eCOS、uC/OS-II 或 III),或者只是进行编程来了解有关嵌入式系统的更多信息。裸机”,根本没有操作系统或执行程序。

嵌入式系统文章的一个很好的资源是 http://embedded.com/

关于硬件,ARM 是最普遍的架构广泛应用于各种嵌入式系统,包括电话、PDA、STB、DAB 收音机、数码相机、掌上游戏机、上网本、iPad、机器人等。许多芯片制造商都提供它,具有各种成本/性能和外围设备,片上存储器。基于 Cortex-M3 的部件将是一个很好的介绍,并且它的设计比它本质上取代的旧版 ARM7TDMI 内核更简洁。 (只要您不想运行 Linux,在这种情况下您至少需要一个带有外部存储器的 ARM9)。

如果电路板/工具成本至关重要,您可能宁愿使用 8 位设备,我建议使用基于 Atmel 的 AVR 的设备。这些设备很简单,范围广泛,并且适合用 C(如果您愿意,也可以用 C++)编程。 PIC 可能看起来很有吸引力,但它涵盖了一系列基本上不兼容的架构(每种架构都需要不同的工具链),除非您使用高端设备(例如 PIC24/dsPIC),否则它们并不提供用于 C 编程的最佳平台或 C++。

by Googling I found out that Linux OS
is one of the best OSes for Embedded
devices(may be/may not be)

It gives you a lot of functionality at on the face of it, low cost. However you have to factor in the cost of the hardware needed to run it, when you might otherwise have been able to use lower cost devices, and the huge amount of third-party code over which you have little control. Also it is not suited to hard real-time applications. By using Linux, you will have implicitly imposed a requirement for a 32 bit processor with an MMU (unless you use uClinux and loose memory protection), and several Mb of RAM and non-volatile storage.

Also you'd learn a lot more about embedded systems by not initially targeting Linux, but using an RTOS or real-time kernel such as FreeRTOS, QNX, VxWorks, eCOS, uC/OS-II or III for example, or just programming 'bare metal' without an OS or executive at all.

A good resource for embedded systems articles is http://embedded.com/

Regarding hardware, ARM is the most ubiquitous architecture in embedded systems used everywhere including phones, PDAs, STBs, DAB radios, digital cameras, hand-held games, netbooks, iPad, robotics etc. It is available from many chip-makers, in a wide range of cost/performance and peripherals and on-chip memory. A Cortex-M3 based part would be a good introduction, and is a cleaner design that the older ARM7TDMI core that it essentially replaces. (so long as you don't want to run Linux in which case you'll need at least an ARM9 with external memory).

If board/tool cost is critical, you might rather use an 8bit device, and I suggest something based on Atmel's AVR. These devices are simple, come in an extensive range, and are suited to programming in C (and C++ if you wish). PIC may seem attractive, but it covers a range of largely incompatible architectures (each requiring different tool-chains) and unless you use a high end-device (PIC24/dsPIC for example), they do not present the best platform for programming in C or C++.

一梦等七年七年为一梦 2024-09-08 16:35:16

查看 Arduino 项目。除其他外,它被设计为一种廉价且易于为学生编程的嵌入式系统。

Take a look at the Arduino project. It was designed, among other things, as a cheap and easy to program embedded system for students.

爱已欠费 2024-09-08 16:35:16

我恰好是最新 PIC 器件的粉丝,例如 PIC24F 和 dsPIC33F。它们针对 C 进行了优化,并且 Microchip 提供了免费的编译器。 PIC 的优点之一是它们中的许多都采用 DIP 封装,因此您可以将它们放在塑料面包板上并立即开始使用。也不贵。例如,Digikey 以 3.64 美元的价格出售采用 28 引脚 DIP 封装的 PIC24FJ16GA002(16K 闪存、4K RAM、I2C、SPI、UART 和并行端口)。

I happen to be a fan of the more recent PIC devices, such as PIC24F and dsPIC33F. They are optimized for C, and Microchip has a free compiler available. One thing nice about the PICs is that many of them come in DIP packages, so you can put them on a plastic breadboard and get started with them right away. Inexpensive also. For example, Digikey sells the PIC24FJ16GA002 (16K Flash, 4K RAM, I2C, SPI, UART and parallel port) in a 28-pin DIP package for $3.64.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文