使用Arduino IDE编程是否适合商业产品
Is programming using the Arduino IDE suitable for commercial products?
我需要以这样一种方式对微控制器进行编程,即我确切地知道它将要做什么,因为它适用于需要高可靠性的项目(类似于汽车产品)。
我熟悉C语言(始于9年前),所以理想情况下,我会使用ATMEL官方框架自己编写所有代码,用AVR-GCC编译,并用AVRDude刻录EEPROM。还有一种方法是将.hex上传到已经烧录的引导加载程序,以避免使用电路内程序员(由Arduino完成)。不足为奇。
然而,该框架显然是非常低的。每次使用ADC或在USART上发送数据时,我真的没有时间直接操作寄存器(实际上更容易出错)。所以我认为Arduino库不可能是不可靠的,因为它已经存在了很多时间(它有C++语法,但为什么不呢)。
但实际上,如果我要使用Arduino库,那么将整个Arduino IDE用于商业产品有什么错?通过Arduino IDE编程隐藏了什么(为了让用户更简单),这使得它在商业应用程序中"不受信任"?还是一个神话?
Arduino的库是有效的,但效率不高。它们是为对硬件或软件知之甚少的用户开发的。
例如,看看hardwareSerial.cpp模块,就会发现它使用内部循环来发送数据,而不是使用串行中断。这会阻止草图,直到它完成发送数据。
就像这个例子一样,还有更多的,这就是为什么我大部分时间都在编写自己的库的原因。
完全放弃在商业产品中使用Arduino lib的想法。这不仅是因为它的有效性,还因为线程安全性没有得到保证。例如,一些变量和数据结构(队列)在ISR上下文到主上下文之间没有得到保护,这可能会导致数据完整性问题,甚至随机硬故障。尽管可能性很低,但除非你的产品质量不重要,否则你仍然应该放弃这个想法。
另一方面,低效率意味着你必须在处理器上支付更多的硬件预算,这也使得它在商业产品中不合适。
人们喜欢Arduino是因为他们想要快速发展。如果你自己写一个坚实的框架,你将能够快速开发产品。
- Arduino IDE 中使用 strncmp 函数时出错
- Arduino IDE 错误 - 无法找到数字文字运算符"运算符""f900ff"
- Arduino IDE中自定义库类的.h文件编译错误的原因是什么
- 无法ESP8266连接到 Arduino IDE
- 使用Arduino IDE的构造函数的未定义参考错误
- 如何在arduino ide中修复"undefined reference to:",尝试使用googletest
- 将 API 链接消息解析为 C (Arduino IDE) 中的服务器
- 为什么我的串行串行在Arduino IDE上通过串行显示器进行两次打印
- 覆盆子Pi(QT C )和Arduino(Arduino IDE)之间的通信
- Arduino IDE告诉我找不到字符串文字运算符“运算符”“DRIVE”
- Matlab Coder and Arduino IDE emxCreateWrapper_real_T
- 从Arduino IDE中的类中读取和写入值
- 用于 2 辆 DC 汽车的 arduino IDE 代码,带有 L298 和超声波和蓝牙控制与安卓
- 使用Arduino IDE编程是否适合商业产品
- Arduino IDE - 按下按钮时停止重复'Serial.println'
- 如何为 Arduino IDE 安装 openCV 库
- arduino ide 中缺少端口选项
- Arduino IDE编译器错误多重定义
- 在 Arduino IDE 上导入库时出错
- Libraries in Arduino IDE 1.0