您编写的程序将取决于您拥有什么硬件或构建硬件所需的技能和设备。
如果您没有硬件(或电子技能),那么购买现成的开发板,然后程序将取决于板上可用的功能。最简单的只有一个串行或 USB 端口和一些直接连接到微控制器的 GPIO 和外围设备 IO 的 I/O 引脚;您需要为此附加额外的硬件。更昂贵的电路板可能包括快速 32 位处理器、显示器、以太网、存储卡接口、大型外部 RAM/闪存、WiFi、按钮、开关、LED 等。
如果您以前从未启动过嵌入式系统,那么您至少应该像在桌面系统上学习编程时那样做;那就是写“你好世界”。在这种情况下,文本应该从串行端口发出,并显示在终端仿真器中(例如 TeraTerm 或如果必须的话,超级终端)。这将确认您拥有开发工具链和工作流程,并且可以构建将二进制文件加载到板上。它还将验证您的基本串行主机通信是否正常工作,这将有助于调试,尤其是在您没有专用调试硬件(如 JTAG 仿真器或 ICE)的情况下。
您可能会发现您的开发工具套件或微控制器或电路板供应商的网站包含硬件演示示例,其中包括基本驱动程序代码。毫无疑问,将会有一个适合“hello, world”测试的简单串行 I/O 演示。它可以执行直接串行输出,也可以更复杂并提供库重定向代码,以便标准 I/O 库调用(如 printf() 和 getchar())将在串行端口上工作。
一旦你整理了基础知识,你就然后准备好决定要构建什么了。如果您的棋盘有一个点阵图形显示器(即使是一个很小的),以及几个开关或一个电位器,那么一个简单的街机游戏,如突围、防御者、入侵者,甚至乒乓球都是可能的,并且立即得到满足!
使用嵌入式系统可以做的最有价值的事情之一就是让东西移动。电机控制和机器人应用程序是最有价值的,并且具有重要的实时要求,这些要求将培养通常不会在桌面应用程序上使用的技能。对于此类应用,您将需要额外的硬件来连接电机等大电流设备,例如简单的 H 桥控制器。您可以从许多机器人套件供应商处购买此类硬件,或者如果您拥有必要的技能和设备,也可以自己构建。我建议从简单的“big-trak”式移动车辆开始(如果您的机械技能有限,可以使用 Meccano 或 Lego-Technic),然后可能添加诸如碰撞开关、光检测、线路跟随器、超- 声波、里程计等。
当您的应用程序变得更加复杂时,您将从了解如何部署简单的 RTOS 或实时调度内核中受益。