只会C语言单片机?学会这一招,十分钟带你掌握Linux开发!
Posted 电子发烧友网
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了只会C语言单片机?学会这一招,十分钟带你掌握Linux开发!相关的知识,希望对你有一定的参考价值。
在之前讲解如何自学嵌入式技术,总觉得嵌入式还没讲完。因为嵌入式的开发,既有软件又有硬件,软硬结合得非常深入,可以这么说,不熟悉电子电路和硬件性能的,又或者不精通编程语言和思想的,都做不好嵌入式开发。
先来谈一下定义,很多人会把嵌入式和单片机搞混,但大多时候,两者的词义在某些场景下好像也可以通用。嵌入式的英文是Embedded System,中文应该叫嵌入式系统了。比较完整的解释是: 嵌入式系统,是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 由此可见,嵌入式一词,包括软件和硬件的开发,是一整套完整的专用计算机系统。
(此处的计算机一词,也并非完全指PC电脑,电脑也并非只有PC机......)
而单片机的则要简单得多,单片机的全称应该叫单片微机或者单片微控制器,英文是MCU (Microcontroller Unit),它集成了CPU,RAM,ROM,IO口等功能。单片机的内核,常见的有8051,AVR,ARM,每种IP核都有自己的指令集。我们所熟悉的电脑的CPU,是8086内核,本质上也是一个大型的单片机。
常见的单片机的外观--集成电路芯片 Integrated Circuit Chip
最常见的MCU有80C51和STM32系列,内部有ROM,可以存放代码,也称之为固件 Firmware,在CPU上电之后,会执行ROM中的代码,CPU计算过程缓存到RAM,输入输出则对应着IO口。
正常来讲,嵌入式开发,一般都是包括软件和硬件的开发。
但是行业内也有另外一种区分的方法,因为嵌入式软件有大小系统之分,支持MMU(Memory Management Unit,内存管理单元)的,可以跑Linux,android等大系统,称之为嵌入式;而不支持MMU的,跑RTOS或FreeRTOS等小系统的称之为单片机。
说回正题,我最早接触单片机是在2003年,用atmel公司的80C51,使用的是南京伟福公司的6000编译器,编写汇编语言。因为公司同事都是用这个软件开发,当时也不知道有keil编译器,可以支持C语言开发,也就硬着头皮学下来了。后来查了一下,原来keil C51编译器在1988年就已经上市了,只比我小几岁而已。
2003年的网购环境,不像现在这么便捷,很多元器件,都要到广州的赛格电子城去购买,而线路板画好之后,更是一个麻烦事,很少有工厂会接打样的订单,有也很贵。不像现在,万能的淘宝几乎可以买到任何电子元器件,线路板画好之后,上传到立创等PCB样板网站最快24小时就收到货了。
我的第一个正式的单片机研发项目,使用飞利浦(现在的NXP)的芯片,记得型号是LPC908,TSOP8个脚位,不需要外部晶振,默认带一个UART,只需要3.3V供电即可。当时这个项目也非常简单,是一个三星手机的恢复出厂值的小设备,上电启动时,设置好串口波特率,特定的时间发送3次数据,三星的手机就恢复出厂设置了。当时芯片选型,线路板,指令抓取和单片机程序都是我一个人完成。
出来创业后,做的项目就比较多了。用过的单片机型号,估计都有二三十种了吧,各种高中低端的芯片,普通的51单片机,AVR的,ARM的,带蓝牙的,wifi的,全世界最便宜的,五花八门,琳琅满目。
做嵌入式开发也十几年了,给后浪们总结了几条经验,也欢迎各位补充指正。
1、做嵌入式开发,还是要深入去了解硬件,虽然现在工作的岗位区分比较明显,但在我入行的时候,硬件软件可没有分的这么清。原理图线路板,有时间学画一画,对自己技术也是一种提高,对硬件的理解也有帮助,也不是非要那么精通,但自己亲手画过几个板子,做过几个项目之后,相信你会有不同的理解。
2、英语的底子还是要加强,做嵌入式开发,如果看不懂芯片的Datasheet,那基本没办法工作的。其实和写代码编程一样,只要能看懂,能理解,基本上在工作上应该就不会有障碍了。但是不能逃避,有些同学用汉化软件,找中文数据手册,这点我是不赞成的。
3、嵌入式开发从软件上分为小系统和大系统,我是建议都要掌握。从STM32的裸机系统开始,再尝试跑个RTOS或国内的RT-Thread,基础打牢了,再转向Linux的系统,这样就比较完整了。即使是从Linux入门工作到现在的,我还是建议花点时间搞搞单片机,买一个stm32的开发板也很容易,嵌入式硬件基础要熟悉,而软件更是要精通。
4、开发工具要熟练,我发现很多同学拿个开发板到手,就直接接电开机,我的习惯的不管啥板子,我都接稳压源开机,一来可以看看工作电流,对功耗有一个概念,二来把短路电流CC设置小一点,也可以防止硬件问题烧坏主板。还有万用表,示波器,逻辑分析仪都是必备工具,特别是逻辑分析仪,对写软件的工程师来讲简直是救命神器。
5、各种软件IDE开发工具要熟练,很多人不知道keil有单步调试和断点调试的功能,调试软件全部用log输出或者串口打印输出,开发效率太低下了。除非是linux或者android的开发,那确实没法在线调试或仿真,但涉及算法都可以在VC++上面调试跑通之后,再移植过去。
最后讲一句啰嗦话,搞嵌入式要沉得住心,不要那么浮躁。作为搞技术和创业多年的人,在我眼中,做硬件两三年的同学,才刚入门呢。
那么重点来咯,现在有木有这样一种方法,能够让你会基本的C语言编程,懂得使用单片机,就能够快速入门嵌入式Linux开发?
答案是有的!
学习嵌入式开发,你不需要:
1.懂得硬件驱动系统,只要懂得逻辑业务实现即可;
2.花时间熟悉、开发嵌入式UI,使用串口屏可以很方便的操控任何模块,并轻松进行二次开发;
3.考虑硬件成本、稳定性及系统维护等问题;
4.学习复杂的软件IDE开发工具;
......
给大家介绍一款好用的嵌入式Linux IDE工具,游芯科技的YOXIOS X3开发板。这是一款基于Linux系统的GUI轻量化操作系统,适合各种物联网应用开发,自主开发的GUI框架和IDE开发工具,高集成度和低成本的硬件方案,能够提高项目的开发效率,降低硬件和人力成本,使嵌入式硬件图形化编程更容易。
1.Linux:基于Linux核心系统开发和优化
2.IDE:简单易用的IDE工具,所见即所得
3.GUI:自主研发的GUI框架和图形控件
4.OPEN:开放的源代码和丰富开发社区资源
目前,这款开发板已上架到发烧友试用中心,小编给大家申请到10个免费试用名额。想入手学习的童鞋们,可以报名参与我们的试用活动哦!
用YOXios,十分钟开发Linux!
1.降低成本提高效率:Android和Linux的开发,需要硬件、驱动、系统、应用等开发工程师,人力成本高。而且全新的硬件项目,一般开发周期都需要3个月左右,效率低下。
2.图形化GUI和计算能力:单片机的硬件方案,使用RTOS或者自主开发的小系统,在GUI显示、文件系统、网络通信和计算能力上面,资源非常不足。
3.软硬件一体解决方案:软硬件一体解决方案,使用linux底层系统,使开发资源无限丰富,同时对GUI显示和交互,硬件计算能力,稳定性和硬件成本,都取得了很好的平衡。
YOXIOS 核心优势
1.快速开发:提供IDE工具,十分钟入门。
2.快速应用:自研GUI框架,专注应用逻辑。
3.快速启动:精简Linux内核,3秒开机速度。
4.低人员成本:仅需一个工程师,搞定全方案。
5.低时间成本:使用标准开发板,最快一天出样品。
6.低维护成本:专注业务逻辑,忘记硬件驱动系统。
入门级 硬件产品 X3规格参数
CPU:ARM9 600MHz
RAM:32MB
ROM:16MB
显示屏:4.3寸 480*272
触摸:电容式
音频:SPK,MIC
存储:TF卡
UART*1;I2C*1;SPI*1;IO*2;
嵌入式Linux开发,你是否会经常遇到以下问题?
1.选用单片机,怎么解决网络通信、文件系统和图形处理?
2.几个GUI页面的需求,就非得用Android?
3.产品开机时间超过30秒,有没有3秒开机的?
4.RTOS、Linux、QT,哪一个不是深坑?
5.项目需要硬件、Layout、驱动、应用等人员支持?
6.时间不等人,项目一周要出Demo,怎么办?
没关系!只要你会C语言,懂单片机。用YOXIOS,十分钟便可以搞定Linux开发!
应用场景
智能家居
智慧零售
智能医疗
智慧教育
工业控制
创客应用
还不过瘾?来两个短视频,一起看下YOXIOS都能做哪些应用项目吧!(视频仅提供一部分展示,还有更多实际应用,等你来挖掘哟~)
产品图片
物料清单:YOXIOS X3开发板(基于Linux的GUI)*1, 配套技术文档(原理图+用户/数据手册+项目案例)*1
当然!在这并非提倡大家学习嵌入式走捷径,该认真学习的部分,还是要努力去专研的。就比如,对硬件的了解,开发工具及仪器的使用,掌握EDA设计辅助类工具等。当然,你可以借助本次提供基于Linux的GUI开发板资源,快速入门嵌入式项目实践,并从中不断去积累自己的实战经验。
如何申请免费试用?
2. 筛选: 网站根据申请者填写的【试用计划】和【论坛活跃度】两个维度进行筛选;
2. 公布名单:2020/07/28
3. 发货日期:2020/07/30
以上是关于只会C语言单片机?学会这一招,十分钟带你掌握Linux开发!的主要内容,如果未能解决你的问题,请参考以下文章