您在对问题的评论说明中提到的设备永远不会使用 Windows PC,因此在这种情况下不需要低级 Windows 编程。事实上,我会说它不受欢迎。原型设计与速度有关。这是关于你能以多快的速度把一些东西放在一起向潜在的投资者或高层管理人员或其他决策者展示。
您不希望在低级 C 和 Win32 api 上花费额外的时间,直到项目需求被清除到足以让您知道这是最终项目可交付成果的绝对要求(也许是服务器/PC 监控工具?)。在此之前,您需要开发速度。幸运的是,该行业拥有用于快速原型设计和硬件开发的工具,如您所描述的。
我对嵌入式开发原型的偏好
至于我作为开发人员的意见,我喜欢 .net 微框架 (.netmf) 仅仅是因为我已经是 Microsoft .Net 开发人员并且可以转移我现有的很多技能。因此,我在 Visual C# Express 2010 下使用 C# 使用 FEZ 微控制器进行原型制作(根据需要免费)。它快速、简单,您可以在几分钟内完成项目的核心。
如果您作为开发人员的经验不同,您可能会寻找使用 BASIC、Java 或其他语言编程的微控制器,以通过重用您的核心技能集来帮助加快开发速度。
解决您的问题赏金评论
惊人的大部分嵌入式软件可以在台式计算机上开发,而不是在深度嵌入式目标上。如果处理得当,这种“目标系统瓶颈”的避免可以潜在地将生产力提高一个数量级。但是,要在桌面上开发嵌入式软件,需要模拟 UI 组件,例如显示器(分段和越来越图形化)、LED、旋钮和按钮。我正在寻找用 C 语言用普通 Win32 API 编写的此类 UI 组件,以便与要在桌面 Windows 上开发和测试的嵌入式代码轻松集成。
我从事嵌入式开发的专业工作超过 4 年,以及围绕该兼职工作的许多年。虽然您上面所说的有些正确,但它不会为您节省时间或金钱,这就是为什么每个人都对这种策略的动机感到困惑的原因。我们花了数年时间试图为这家公司的硬件设备推出一个 Windows 模拟器,理论上这可以节省原型设计的时间。这总是很痛苦,我们花了更多的时间来模拟这种体验,而不是直接从草绘的 UI 绘图规范到真正的开发。仿真器落后于硬件开发,通常要等到硬件发布 6 个月或更长时间后才能支持最新功能。这是很多额外的工作,但价值很小。
您将花费更多时间来开发不可重用的 win32 平台代码和硬件仿真组件,而不是实际为核心项目本身编写代码。这仅对硬件供应商才有意义,他们将此仿真器作为“增值”工具提供给潜在的第 3 方开发人员,但对于新硬件设计的原型制作没有意义。
现代开发环境(如带有 FEZ 微控制器的 Visual C# Express 2010)可以编译、将项目输出推送到微控制器,然后开始调试的速度与在 C 中编译和运行模拟 LCD 或 LED 的低级 Windows 应用程序一样快或更快,或者开关等...因此,现代工具不再适用您的评论“将生产力提高一个数量级”。(可能是在过去 10 年左右之前。)
如果您真的,真的只是想在 PC 上直观地模拟嵌入式硬件,请使用 adobe flash 之类的东西来模拟 UI。但是,当您制作原型的最终设备不会运行 windows 时,不要通过为 windows 编码来复制代码(也许会运行 windows,但您没有这么说)。使用当今可用的最快最可靠的原型设计工具,这绝对不是低级 C 和 win32 api!
也许将 StackExchange 用于电子产品?
因为这是一个面向开发的站点,所以讨论特定嵌入式硬件的优点并不重要。如果您决定重新专注于使用微控制器电子设备进行原型设计(Arduino、FEZ、Propeller、Basic Stamp、Pololu等),您可能会在 stackexchange for electronics 上寻求电子硬件建议。我会说,这些平台中的大多数旨在促进 LCD、LED、按钮和界面的原型设计,正如您所概述的那样。您通常可以在几分钟内组装一些预先构建的模块,并准备好开始对您的项目进行编码。在这里可以节省大量时间。