使用适用于商业产品的Arduino IDE进行编程吗?

时间:2015-04-02 17:33:46

标签: c++ c arduino embedded

我需要以这样的方式编程微控制器,以便我完全知道它将要做什么,因为它适用于需要高水平可靠性的项目(类似于汽车产品)。

我知道我在C(9年前开始)的方式,所以理想情况下我会使用ATMEL官方框架自行编码,用AVR-GCC编译并用AVRDude刻录EEPROM。还有将.hex上传到已经烧毁的引导加载程序的方法,以避免使用在线编程器(由Arduino完成)。没有惊喜。

然而,该框架显然是非常低的水平。每次我使用ADC或在USART上发送数据时,我都没有时间直接操作寄存器(实际上更容易出错)。所以我认为Arduino库不会不可靠,因为它一直在那里(它有C ++语法,但为什么不呢)。

但实际上,如果我打算使用Arduino库,那么将整个Arduino IDE用于商业产品有什么问题?通过Arduino IDE进行编程隐藏(使用户更简单)使其对商业应用程序“不可信”?还是神话?

2 个答案:

答案 0 :(得分:1)

Arduino的库是有效但不高效的。它们是为那些对硬件或软件知之甚少的用户开发的。

例如,看一下hardwareSerial.cpp模块,看看它使用内部循环来发送数据,而不是使用串行中断。这将阻止您的草图,直到它完成发送数据。

就像这个例子还有更多,这也是我在大多数时间编写自己的库的原因。

答案 1 :(得分:0)

完全放弃在商业产品中使用Arduino lib的想法。不仅因为它不合理,还因为线程安全无法保证。例如,某些变量和数据结构(队列)不受ISR上下文到主上下文的保护,这可能导致数据完整性问题甚至是随机硬故障。虽然概率很低,但你仍然应该放弃这个想法,除非你的产品质量不重要。

另一方面,低效率意味着您必须在处理器上支付更多的硬件预算,同时也使其在商业产品中不合适。

人们喜欢Arduino,因为他们想要快速发展。如果您自己编写一个可靠的框架,您将能够快速,稳定地开发产品。