使用Arduino, Python, Lua等来做单片机开发等同于走绝路!
一,首先问一下:你们知道Arduino, Python, Lua等做单片机开发到底是什么原理?
这边给出一个Lua的: https://www.cnblogs.com/yangfengwu/p/9315841.html
实际上就是说Arduino, Python, Lua做开发是调用的别人使用C语言封装的函数!
现在思考下:
1,别人能100%的把单片机的所有功能封装进去吗?
2,稳定性和效率有保证吗?
3,封装的时候必会使用大部分的flash和ram!
二,使用实际情况验证第一个问题(使用Arduino, Python, Lua等来做单片机开发,别人能100%的把单片机的所有功能封装进去吗?)
这边使用Arduino和Python做ESP32的开发,需要使用到CAN;
首先Python直接绝路了: 根本没有做CAN函数的封装;
再者是Arduino, 虽然有人封装, 但是我看了他们封装写的程序,几个字:糊弄着能用就行(其实也不能怪他们,他们并不是使用者,只是无私奉献者)
其实Arduino还好,实际上是C调用C,执行效率没得说, 库的运行效率就看封装库的人的水平; 当然也可以直接使用底层的C自己写功能;
因为客户需要100K,500K和1M,但是别人提供的CAN库并不支持, 500K封装的还有错误, 最终我这边是更改了他们封装的CAN库;
由此可见别人是不可能100%的把单片机的所有功能封装进去的!如果你不会C开发,直接绝路了!
三, 使用实际情况验证第二个问题(使用Arduino, Python, Lua等来做单片机开发,稳定性和效率有保证吗?)
大家有没有想过实际上芯片厂商提供的C也是有问题的, 然后另外的厂商再在C上封装个Arduino, Python, Lua出来!
当时这边做一个4G模组的C开发,然后测试发现芯片厂商提供的C底层有问题,每一条消息非得等到服务器阻塞应答,然后这边就去做了更改;
芯片厂商那个做开发的估计只一步一步看表面文档说的协议,而没有实际使用测试软件测试抓包,也没考虑实际应用!
底层都有问题,更何况再把底层的功能使用Arduino, Python, Lua等封装一遍!
四, 使用实际情况验证第三个问题(封装的时候必会使用大部分的flash和ram!)
使用C语言的时候咱控制一个GPIO只需要几行代码, 而使用 Arduino, Python, Lua 等提供的库函数编程,
为了满足各种需求,底层会使用了几十,几百行的C语言来封装;
所以使用Arduino, Python, Lua来做开发,做不了复杂的功能!
.