设计与开发

单片机个人总结 单片机那点事:10年从业经历总结高级单片机程序员应该熟悉内容

小编 2024-10-22 设计与开发 23 0

单片机那点事:10年从业经历总结高级单片机程序员应该熟悉内容

13年毕业,一直从事单片机软硬件开发工作,经历了多次换工作的面试,也为公司招人技术面了很多个人,总结了高级单片机程序员应该熟练掌握的内容。

概括总结包括:基础知识;裸机开发与上系统主要区别;操作系统原理;程序模块及框架结构化设计;单片机启动过程;程序升级设计;程序设计面向对象的思想。

基础知识

单片机的开发所用语言主要是c语言,此处主要是c语言相关的基础知识。包括编译与预编译,宏定义及条件编译使用;关键字static,const使用;结构体与指针的用法;回调函数的用法;基本通信接口uart,iic,spi的用法。

除此之外,需要了解一些硬件的基础。如led指示灯控制电路,按键检测电路,三极管或者mos管控制电路。

裸机开发与上系统开发区别

裸机开发程序的运行走向是完全透明的。但上系统的开发,此处主要指单片机上的小嵌入式系统,如freeRTOS,uCOS,OSAL(虚拟操作系统)。程序的运行包括操作处理的一些不透明的部分,影响一些强实时性操作。如操作系统中一些临界区保护机制。

操作系统原理

此处也是主要指单片机上的小嵌入式系统。主要涉及内容包括操作系统的时间管理,存储管理,任务管理。根据相关原理最好自己能够写出个类操作系统运行机制。

程序模块及框架结构化设计

为了程序的可读性,可维护性。在功能需求实现的基础上,需要具有程序设计的模块及分层的设计思想。面试中会让你分享你以往项目程序设计中是怎么处理的,以了解面试者是否具有这方面的意识与概念。

单片机启动过程

作为单片机的应用设计开发,对于初级单片机程序员来说,不需要具体了解单片机是如何启动的,只需要知道c语言程序的入口main即可。但作为高级单片机程序员,你是需要熟悉单片机复位到main执行的这段过程基本处理逻辑,也即是单片机的启动过程。

程序升级设计

程序的升级包括无线ota空中升级,有线升级。升级设计相关知识内容会包括bootloader,程序存储,程序跳转切换。

程序设计面向对象的思想

单片机的应用开发主要是c语言的开发,c语言实际是面向过程的开发。初级开发设计是面向过程的流程化思想,一定进阶后,需要掌握使用c实现面向对象设计思想。所以若是有java,c++开发的基本了解就更好了。面向对象主要思想点是对象的行为与属性,使用c语言的结构体包装管理对象的行为与属性

总结

以上均粗略的概括各方面相关内容,并没有具体展开,后续文章会慢慢进一步细说,欢迎大家一起沟通交流。

宇凡微|一些单片机学习心得,干货总结

  单片机作为计算机发展的一个重要分支领域,在现代智能电子领域中拥有不可或缺的重要性。现如今,单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,几乎涉及到人类生产生活的方方面面。学习单片机的朋友也越来越多,今天宇凡微工程师就为大家分享一些单片机学习心得,希望能够帮助到正在或者想要学习单片机的朋友。

  首先,单片机的种类丰富多样,但是任何一款单片机其基本原理和功能都是大同小异。不同种类的单片机之间只是其外围功能模块的配置以及数量和指令系统等等。

  对于指令系统来说,虽然在形式上看起来有很大的不同,但实际上只是符号的不同,它所代表的含义、要完成的功能和寻址方式基本相似。

PCBA板

  要了解一款单片机,首先需要知道就是其ROM空间、RAM空间、IO口数量、定时器数量和定时方式、所提供的外围功能模块(Peripheral Circuit)、中断源、工作电压及功耗等等。

  了解这些单片机 Features后,接下来第一步就是将所选MCU的功能与实际项目开发的要求的功能进行对比,明确哪些资源是目前所需要的,哪些是本项目所用不到的。

  对于项目中需要用到的而所选MCU不提供的功能,则需要认真理解MCU的相关资料,以求用间接的方法来实现,比如,所开发的项目需要与PC机COM口进行通讯,而所选的MCU不提供UART口,则可以考虑用外部中断的方式来实现。

  对于项目开发需要用到的资源,则需要对其进行认真的理解和阅读,而对于不需要的功能模块则可以忽略或浏览即可。对于MCU学习来讲,应用才是关键,也是最主要的目的。

  明确了MCU的相关功能后,接下来就可以开始编程了。

  对于初学者或初次使用此款MCU的设计者来说,可能会遇到很多对MCU的功能描述不明确的地方,对于此类问题,可以通过两种方法来解决,一种是编写特别的验证程序来理解资料所述的功能:另一种则可以暂时忽略,单片机程序设计中则按照自己目前的理解来编写,留到调试时去修改和完善。前一种方法适用于时间较宽松的项目和初学者,而后一种方法则适合于具有一定单片机开发经验的人或项目进度较紧迫的情况。

  不要花太多时间去理解指令系统。指令系统只是一个逻辑描述的符号。在编程过程中,您只能根据自己的逻辑和程序的逻辑要求查看相关指令。此外,随着编程的进展,指令系统将变得越来越熟练,甚至可以在不知不觉中被记住。

引用:单片机学习心得-深圳宇凡微

相关问答

单片机 常见故障及处理?

一些单片机常见问题的解决办法工作和生活中会遇到许许多多的问题,可能让你一时陷于其中,但是总有解决的办法。随时记下遇到的问题,并做好总结,一方面有助于积...

单片机 什么书最好?

51:《单片机的C语言应用程序设计》作者:马忠梅PIC:《PIC单片机入门与实战》作者:张明峰AVR:《AVR单片机嵌入式系统原理与应用实践》作者:马潮这就是我...

总结 编写 单片机 应用程序的一般思路要点有哪些?

编写单片机应用程序的一般思路要点:1、根据所选单片机型号,查阅该单片机技术文档,了解单片机具有哪些内部资源。2、阅读软件设计说明书详细了解通过编程所要...

单片机 如何通过ADC模块采集模拟信号?

朋友们好,我是电子及工控技术,我来回答这个问题。众所周知单片机是一种超大规模的集成电路,它只能“读懂”并处理数字信号,对于连续量的模拟信号则无能为力。...

基于 单片机 的电梯控制系统难不难做?

基于单片机的电梯控制系统,其原理实现并不难,通过采集按键选择停留的楼层,单片机系统结合楼层信息,控制电动机转动,控制电梯停留在相应的楼层。电梯控制系统...

单片机 中ttl是啥意思?

单片机中TTL是什么意思?TTL代表Transistor-TransistorLogic,即晶体管晶体管逻辑。它是一种数字电平标准,用于描述数字信号在电子电路中的传输和处理方式。TTL...

单片机 是做什么的?

[回答]单片机又称单片微控制器,它不是已完成某一个逻辑功能的芯片,而是把一个计算机系统构建到一个芯片上。相等于一个微型的计算机,和计算机比起,单片机...

为什么很多 单片机 的工作电压是5v?

因为大多数芯片都是5V的TTL电平,要做到电平兼容,电平匹配,避免要电平转换操作,所有很多单片机的工作电压都是5V。TTL指的是TTL电平,0~5V之间,小于0.2V输出...因...

PLC和 单片机 有什么区别?

PLC(可编程逻辑控制器)和单片机是工业控制领域常用的两种控制设备,它们有以下区别:1.功能:PLC主要用于工业自动化控制系统,能够处理大规模的控制任...PLC(...

学完 单片机 ,并且应用做过项目,想学ARM,linux应该走怎样的学习路线比较好?

做Linux开发的工作有很多种,总结来说有偏上层应用的,也有偏驱动开发的。做上层应用就需要了解Linux系统不用了解太深,但是应用层的一些扩展要掌握,例如linux...

猜你喜欢