关于嵌入式各种开发环境

今年参加电赛,去年一年里学了 51,和stm32,对k210,openmv,esp32也接触了一些。加上今年电赛需要使用ti芯片。当时就跟着教程学习,但现在有了自己思考,而且网上搜索了好多新的概念还有app,感觉特别混乱。希望有人能帮忙解答

  1. stm32,和msp430 原来都可以用好几款app开发(比如keil,ccs, iar,arduino,avr),
    那么为什么会有好几款?

这几款有什么区别?(不讨论软件的操作方法)

同时,同一款app又可以用来开发多个芯片但为什么不能是所有芯片?(是这些芯片之间有什么联系,还是仅仅因为类似版权的问题)

  1. openmv,k210两者开发环境类似。
    为什么这两款要用python开发,而不是c?

用python开发openmv和用c开发stm32在流程上有什么不同?(为什么k210和openmv要给板子刷固件)

  1. 听学长说不管用什么语言开发板子,最终写入板子的都只是二进制文件所以可以用任何语言开发
    那请问如何用python开发stm32和msp430?(在micropython官网里看到了好像有stm32f4的驱动还是什么但不知道如何使用,而且不知道是不是stm32任何系列都能用)
  1. 关于APP
    看你喜好了,就像处理文本一样,你可以用word,也可以用wps,甚至记事本,notepad等等
    你说的这些app表层只是一个文本编辑器,核心是工具链,像编译器连接器什么的,各app差异在于附加了其他不同的小功能

openmv,k210两者开发环境类似。
为什么这两款要用python开发,而不是c?
取决于其功能,功能上越处于上层越不适宜用底层语言写,比如简单功能你可以用汇编完成,复杂点就得用C了,再复杂点就JAVA,c#,

后面得没用过,就不清楚了

C语言是低级语言,不适用于做图像处理这些工作,效率不高,python是脚本语言,解释语言,高级语言,做神经网络 AI 等很方便,至于说用python开发单片机,这个跟IDE有关,IDE的编译器不支持python开发,而不支持的原因我想有可能是单片机内部容量限制了,脚本语言占用的资源要大于C/C++

【stm32,和msp430 原来都可以用好几款app开发(比如keil,ccs, iar,arduino,avr),那么为什么会有好几款?】
APP可还行,电脑上的一般叫IDE(集成开发环境)。
IDE这玩意帮你解决大部分开发上的问题,代码补全,debug,编译,打包仿真之类的,你要是足够硬核记事本也能写代码,然后手动编译呗,

【同时,同一款app又可以用来开发多个芯片但为什么不能是所有芯片?(是这些芯片之间有什么联系,还是仅仅因为类似版权的问题)】
芯片不同,功能,性能,各种体征都不一样,编出来的二进制码不能通用,人还有高矮胖搜之分,同一件衣服我穿得,你穿着大不合适,就是这么个道理
至于使用哪种语言那是编译器的事,有的只认C,有的只认汇编,有的只认python,有的认C#,有的是lua,无论什么语言,能编译出适合芯片的二进制码就能烧录进去,最终结果全是01机器码
比如80C51的0x000123是mov(我瞎写的)stm32f103zet6的0x000123是put(还是瞎写的)都是二进制码,意思不一样,当然不能通用

【用python开发openmv和用c开发stm32在流程上有什么不同?(为什么k210和openmv要给板子刷固件)】
至于这个,属于成品,有别人开发的代码,组装到板子上就能用那种,属于调用别人的类库,我用过一个luat的cat1的模块,就是属于这种二次开发的,
而stm32是需要你自己从头做起,自己写业务实现逻辑,简单的驱动led闪烁,红绿灯,复杂点的驱动屏幕播放视频,驱动TF卡,驱动USB之类的,这东西的板子设计,功能扩充,都是可以随意更改的,这是成品模块办不到的

app:因为他们是不同的厂家所以出的不一样,有官方的,也有专门做集成编译的如(keil)
python开发是因为快,你可以用c去开发,官方也有c开发的文档
k210刷固件就是人家开发好了一个库,你用python只是调用的人家的apl
你如果用c开发k210就跟开发stm32一样了