文档章节

硬件开发之mcu

itviewer
 itviewer
发布于 2016/06/14 15:41
字数 888
阅读 77
收藏 0

架构

做嵌入式硬件开发,要以某个控制器为核心,引出其它外围器件。主流上可以按功能强弱分类为 51系列8位mcu——cortex Mx系列32位mcu——cortex A系列 SoC,其中51是x86指令,cortex是arm指令,两者都是哈佛结构。Intel最近也推出了使用Linux的物联网开发芯片,如夸克、伽利略等嵌入式芯片或开发板,及其它移动处理器,但在嵌入式领域,Intel市场要远落后于arm。

51 8位系列是Intel几十年前的产品,也是mcu的祖先,由于其市场占有率及简单架构、适合教学等因素,51至今还没退出市场。由于51系列结构简单,历史较早,可以授权,现在能够生产51的厂家很多,存在一定的兼容问题。经典的51可以使用汇编和c语言指针操作寄存器开发,一般没有官方用c语言封装的库,当然如果自己把51的外设都摸索清了,也可以形成自己用c语言封装的库,只是由于现在的嵌入式开发需要的功能越来越多,性能要求更高,51的架构及开发方式受到很大限制。

随着cortex Mx系列的32位mcu出现,很多嵌入式控制领域采用了cortex M方案,由于cortex M一般是32位,且外设很多,此时再使用类似51使用c语言指针直接操作寄存器开发方式效率很低,故arm公司和mcu开发商一般会给出用c语言结构体和函数对寄存器封装的标准开发库,这里以stm32为例,其它厂商产品基本一样。stm32早期到现在一直支持标准库开发方式,这一定程度上提高了开发效率,但是标准库开发的方式本质上仍然是操作寄存器,需要开发者了解mcu的寄存器参数才能使用。目前stm32又推出了stm32Cube开发方式,进一步进行了抽象,简化了开发方式。当然除了官方开发库,还可以使用rtos方式开发。

但是,面向嵌入式控制的芯片由于在硬件设计阶段比较灵活,多数应用场景所需功能较少,一般不需要上操作系统,这就导致了mcu的开发很大一部分工作是基于特定硬件架构进行的枯燥驱动开发。而官方的标准库能够提供的抽象有限,上层开发仍需要和底层打很多交道。即使使用操作系统,也需要先进行对应的驱动移植。

基于cortex A系列的高性能控制器一般用作面向消费领域的SoC,如果不是用于控制领域,则底层驱动一般参考厂家提供的Linux驱动,需要自己改动的底层驱动较少,而大部分工作是做上层的应用开发,就不会那么枯燥。当然,如果将SoC用于控制领域,也是需要基于Linux的驱动模型和具体硬件打很多交道,如传感器信息获取,只不过上层应用一般只和Linux内核提供的抽象接口打交道,Linux驱动的抽象接口也可以适当标准化驱动的开发。

选型

 

© 著作权归作者所有

上一篇: mcu供应商
itviewer
粉丝 20
博文 218
码字总数 44686
作品 0
海淀
技术主管
私信 提问
面向硬件系统设计的工程组织方式

(哈,很久没上osc灌水了,这里针对近几个月开发过程中的一个问题,面向硬件系统设计的工程组织方式,进行讨论。本帖所讨论的内容,并不针对单主控处理器之上的纯软应用系统开发,而是针对多样...

中山野鬼
2016/02/08
337
1
嵌入式系统开发中,如何选择适合的MCU平台?

业界声音 在物联网领域内的主流无线技术包括:Wi-Fi (802.11)、采用网状网络的ZigBee 和Thread (802.15.4),以及低功耗蓝牙 (LE)。许多私有协议也被广泛应用于工业物联网应用,特别是在Sub-G...

dp29sym41zygndvf
2017/12/27
0
0
面向硬件模块的跨平台开发环境搭建

忘了是年前还是大年初一,写了一篇《面向硬件系统设计的工程组织方式》水帖,其实是个大体想法。过年七天,外加一天,总算把这个想法的整体框架折腾完了。也并了几个模块进去。这里新开一个帖...

中山野鬼
2016/02/16
946
7
嵌入式学习:嵌入式硬件和软件详解

在嵌入式开发中,是分为硬件部分和软件部分的,大多数的初学者对于嵌入式的硬件和软件之间的区别不是很了解,所以今在这里就和大家具体说说嵌入式硬件和软件详解,大家可以参考一下。 图片来...

IT范儿
2017/11/18
0
0
秒懂智能设备联网工作机制,机智云让你从小白变身大神

物联网一直被认为是继计算机和移动互联网之后颠覆人们生活的第三次革命。 在传统的智能产品开发过程中,个人/团队不仅需要搭建服务器、开发APP、做硬件,还要让三者互通互联,通常来,这种研...

物联网小能手
2016/12/22
279
0

没有更多内容

加载失败,请刷新页面

加载更多

前端面试题汇总

一. HTML常见的兼容性 1.HTML5 标签在低版本浏览器不兼容 解决办法:使用html5shiv库,引入下列语句 <!--[if lte IE 8]> <script src="https://cdn.bootcss.com/html5shiv/r29/html5.js"></sc......

蓝小驴
20分钟前
3
0
OSChina 周四乱弹 —— 我气的脸都黑了!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 小小编辑推荐《Red Battle》- 高橋李依 / 豊崎愛生 《Red Battle》- 高橋李依 / 豊崎愛生 手机党少年们想听歌,请使劲儿戳(这里) @丶Lion ...

小小编辑
33分钟前
387
19
找OSG教程, B站就有

https://www.bilibili.com/video/av64849038?from=search&seid=11632913960900279653

洛克人杰洛
55分钟前
4
0
学习记录(day07-Vue组件、自定义属性、自定义事件)

[TOC] 1.1.1什么是组件 一个vue文件就是一个组件 组件将html标签/css样式/对应JS打包成一个整体,也可以理解钻进一个具有样式和特效的自定义标签。 一、编写组件(提供方)<template> <di...

庭前云落
59分钟前
4
0
使用Prometheus监控SpringBoot应用

通过之前的文章我们使用Prometheus监控了应用服务器node_exporter,数据库mysqld_exporter,今天我们来监控一下你的应用。(本文以SpringBoot 2.1.9.RELEASE 作为监控目标) 编码 添加依赖 使...

JAVA日知录
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部