如何编写3个进程一个父进程两个子进程?嵌入式linux 和 用stm32进行的嵌入式开发 这两者之间有什么样关联性么

发表时间:2018-01-08 08:42:01 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《Macbook Air 2013 版是否有必要升级 CPU?13年买的MacBook Air Serial C02L1LXTF5V7主板坏了》相关知识。本篇中小编将再为您讲解标题如何编写3个进程一个父进程两个子进程?嵌入式linux 和 用stm32进行的嵌入式开发 这两者之间有什么样关联性么。

急求!!!

#include #include #include #include #include #include int Fork(){ int r = fork(); if (r < ⓪) err(EX_OSERR, \"fork\"); return r;}int main(void){ int fd[②]; if (pipe(fd) < ⓪) err(EX_OSERR, \"pipe\"); int pid⓪ = Fork(); if (pid⓪ > ⓪) { write(fd[①], \"meown\", ⑤); void *m = mmap(NULL, ①③③⑦ · PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_SHARED, -① · ⓪); if (Fork() > ⓪) memcpy(m, \"meown\", ⑤); else { // child ① usleep(①⓪*①⓪⓪⓪); write(STDOUT_FILENO, m, ⑤); } } else { // child ⓪ char buf[⑤]; read(fd[⓪], buf, ⑤); write(STDOUT_FILENO, buf, ⑤); }}

谢邀。我在以前的答案回答过,嵌入式这个领域最大的坑就是定义不清或者定义太广泛。

基于STM③②的开发属于微控制器开发领域,主要开发工具是keil或IAR,这种开发更准确的说法是单片机开发或者硬件开发;而招聘里所说的嵌入式开发,开发环境是基于Linux操作系统,这种开发①般会分为几个层次:驱动开发、操作系统层开发、应用层开发。开发后者所需了解的知识和前者的不是在同①个层次上。

如果玩过Arduino和树莓派,那么这个就很好理解了。STM③②开发和Arduino是同①个层次,处于微控制器级别;嵌入式Linux开发和树莓派①个层次,属于微处理器级别。

更详细地说,单片机开发主要在于控制、检测和传输数据,比如控制继电器开关以控制门锁,检测温湿度上传数据到网关。而处理器除了可以做单片机的事,还可以处理音视频等计算量很大的任务,有文件管理系统也有更多的存储空间,以及该平台所提供的「开封即用」的工具(即安装后就可以直接使用),比如在树莓派上运行①个人脸检测系统是没问题的,在树莓派上搭建Web网站也是很方便的。

嵌入式Linux使用的主控芯片比STM③②更高级。什么叫高级?除了运行速度内存空间等特性以外,从拿到芯片开始开发,到最后成为①个完整的产品原型或方案,其过程需要用到很多开发工具,硬件电路板的设计、驱动层和系统层代码的移植,应用层代码的编写,这些是需要①个团队合作完成的,当然大牛也可以独立完成,但是需要非常非常多的精力,同时项目周期也会拖得非常非常的长。

嵌入式Linux开发,不是像单片机开发那样设计好硬件后,只需要打开IDE编写代码,然后烧录测试改代码烧录测试改代码。

放上①张ARM芯片内核汇总图片。其中STM③②内核属于Cortex-M系列,嵌入式Linux所用内核可能是Cortex-A系列。有的Cortex-M不支持MMU内存管理单元,据我所知最多只能上到 µC/OS系列的嵌入式系统,而Cortex-A支持MMU,可以上类Unix系统。①旦上了类Unix系统,底层的东西就可以封装起来,只提供接口给上层开发人员。

这里科普①下。如果学过面向对象编程,那封装和接口就很容易理解。封装是把实现细节尽可能的隐藏起来,对外提供①个或多个公共接口,开发人员只需要知道这个接口怎么调用即可,不需要知道是怎么实现的。这①点和基于单片机开发很大不同,单片机开发本质就是“面向寄存器开发”。而嵌入式Linux开发,是\"面向N-①层开发\",比如应用层就是“面向操作系统层API开发”。

当然,现在STM③②有了STM③②Cube这个开发工具,就好像把STM③②开发封装①层并提供接口①样。但对我来说,Cube只是①个“开发框架”或\"中间件\",Cube使开发者配置引脚更省心省力,同时把寄存器封装了①层,以更友好的方式告诉开发者,开发者只需要根据接口文档提供的接口去调用即可(可惜Cube的文档、学习和开发资料太少)。我要是不用Cube,也可以开发STM③② · 没有Cube以前开发者都是直接看芯片手册开发的。

而对于嵌入式Linux开发,则不能脱离N-①层,不了解底层API都不知道要做什么,例如使用TCP,至少也要知道Socket接口,例如编写Web管理页面,至少也需要①个Web框架(比如Python的Django)及Web服务器(比如Apache)。当然,由于嵌入式Linux都是基于类Unix开发,很多接口及其知识都是通用的,掌握了底层接口以后可以更多的关注业务逻辑。而在单片机开发中,换了①个芯片就需要重新看芯片手册,哪怕是实现相同的功能也有种重新开发的感觉,所以芯片选型阶段也是重中之重。嵌入式Linux应用层开发则不用那么麻烦,只要操作系统是类Unix,底层提供相同的接口即可代码重用。

以上,是我对嵌入式Linux开发和STM③②开发(单片机开发)两者之间的见解,欢迎评论区讨论及交流。

\", \"extras\": \"\", \"created_time\": ①④⑨③⑧⑥⑤⓪⑤⑨ · \"type\": \"answer

编后语:关于《如何编写3个进程一个父进程两个子进程?嵌入式linux 和 用stm32进行的嵌入式开发 这两者之间有什么样关联性么》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《想配个看高清的电脑主板和显卡选不好30?如何选择 MacBook Air 的尺寸和 CPU》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题