单片机IO口开漏输出和推挽输出有什么区别?

推挽输出:既可以输出低电平,也可以输出高电平,可以直接驱动功耗不大的数字器件。导通损耗小、效率高、既提高电路的负载能力,又提高开关速度。
开漏输出:输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行,适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)

单片机里定时器有什么作用和优势?

1.可以用做精确延时处理,比较延时1ms时间
2.可以当做计数器,比如将这个功能IO口接到一个时钟源,可以统计有多少个脉冲信号
3.输入捕获(解码和测量时间间隔)
4.输出比较(主要输出PWM波)、单脉冲输出
5.触发中断(对其他模块进行操作)

单片机定时器的优势:不需要CPU参与,精确

什么是码元?

答:在信息传输通道中,携带数据信息的信号单元叫码元

什么是波特率?

答:每秒钟通过信道传输的码元数称为码元传输速率,波特率。单位是Baud

比特率和波特率的区别?

比特率:指每秒钟通过信道传输的信号量,即每秒钟传送的二进制位数,通过不同的调制方式,可以在一个码元符号上负载多个bit位信息

什么是RAM?

RAM又被称为“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。当电源关闭时RAM不能保留数。如果需要保存数据,就必须把它们写入一个长期的存储设备中(例如硬盘)

RAM分为很多种,关于SRAM、DDR、SDRAM、PSRAM,本文从软件的角度笼统一点分为片内和片外RAM,对于软件工程师来说,它们的区别就是访问速度,大体上片内的访问速度是片外RAM的1.5-2倍,片内RAM集成在CPU芯片内部,一般只有几十K字节,一般用来存放中断处理Handler、RTOS调度器、任务上下文切换、内存分配释放等使用频率最高的代码和中断堆栈这种读写频率极高的内存区,如果有多余的部分也可以放一些经常被引用到的全局变量。片外RAM一般就是采购市面上的成品如Samsung,Hynix,Apmemory等,价格相对便宜,其容量的可选范围也较为宽松,从几M到几G的都有,它可以用来存储全局变量,bss,以及我们常用到的malloc所分配的堆空间等。

什么是ROM?

答:ROM又被称为“只读存储器”,ROM所存数据,一般是装入整机前实现写好的,整机过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。ROM所存数据稳定,断电后所存数据也不会改变。

RAM和ROM相比,两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM不会自动消失,可以长时间断电保存。

RO段应该放在ROM里,DATA段放在RAM里,对于DATA、BSS,这些段因为有频繁的写操作所以肯定要放在RAM里,但是只读数据(包括代码段)必须放在ROM里吗?答案是不一定。

ROM一般是有两种,一种是指集成在CPU芯片内部的一块只读存储区域,一般是几K到几十K字节大小,用来存储系统刚上电时对CPU和一些核心外设(如时钟,串口,MMU、DRAM、Flash等)进行初始化的代码,它在程序运行中也是不可写的,要对它执行写操作只能使用硬件烧写器进行,也就是一般所说的下载程序,这部分的代码在芯片测试阶段可以进行编程器下载更新,量产后一般就会固化,不能做任何修改的

ROM另一种指的就是flash。首先需要说明的是,很多做嵌入式应用开发的同学一直把flash比作PC上的硬盘,其实它们指的是Nand flash,而对于很多小型的嵌入式系统,就只有一个2M或者4M的Nor Flash,它和硬盘有一个显著的区别:flash里存放的代码是可以由CPU直接取指并执行的,而PC上硬盘里的程序都需要加载到内存里才能运行。flash并不是绝对的运行时不可写,有时候应用程序需要保存一些配置信息到flash里,类似于PC程序的配置文件,以保证掉电了之后它的内容不会丢失,下次开机时可以直接从flash读取到。不过,flash的写操作要比RAM麻烦的多了,flash在写之前需要发送多个命令字来握手,还要先对即将要写的地址所在的扇区进行整体擦除,就是把该扇区里的内容全设为1,所谓写flash就是把其中的一些bit设为0;更要命的是,flash的每个独立bit位的写次数是有上限的,市面上大部分的产品都只能写10~100万次。多说一句,每个bit位的寿命是独立的,如果一个bit位在擦除和写的动作中,它的值始终为1,则不会有影响;例如反复对一个地址写0xF0,则不会影响高4bit的寿命,而低4bit每次都要先擦成1,再写入0,这样就会降低其寿命。
目前Flash主要有两种NOR Flash和NADN Flash。NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势)

首先考虑一下,有没有什么东西必须放在ROM里? 当然有,引导程序(系统的初始化代码)就必须放到ROM里。在CPU刚上电时,只能去一个默认的地址去取第一条指令,开始干活,这个地址都是映射到片内的ROM里,原因很简单,此时,作为外设的flash和DDR等都还没有初始化,CPU根本无法从它们那里读写数据,片内ROM里的这些代码就需要完成这些模块的初始化。另外,一个项目的处理器和主要外设确定了以后,这部分初始化代码在很长的时间里,都不需要做任何修改的。

那有没有什么东西必须放RAM里?当然也有,应用程序经常读写的全局变量,堆、栈等等,都需要放在RAM里,根据访问的频率,将频率最高的少量数据放到片内ram。

只读数据(代码段、程序里的const、字符串等)一般来说,这些数据应该放在Flash里,因为它们不需要被修改,而且前面提到过,rom要比ram便宜的多。可能有人会有疑问,放在flash里,会不会读取的速度很慢?读ROM的速度是比读RAM的数据要慢一点,但是不要忘了,现代CPU都有强大的cache,而且数据Dcache和指令Icache都是分开的,在系统运行中,cache的命中率可以高达80~90%,所以大部分时候CPU都可以在第一时间就拿到想要的指令和数据。

那么结论就出来啦:
1、RAM与ROM其实都是内存
2、硬盘是外存
3、ROM不等于硬盘
4一般而言 数据放RAM代码放ROM。(这里多说一句,RAM在系统刚上电的时候,其内容是随机的。所谓的数据、代码放在RAM里,是指在初始化时,CPU从flash里读下载的bin文件,也有的平台下载的是hex文件,找出其中的ram段,以类似于memcpy的方式将数据从bin文件里的对应位置拷贝到RAM映射到的物理地址里,这才是所谓的放在RAM里)

扇区 块 页 簇的概念

扇区,顾名思义,每个磁盘有多条同心圆似的的磁道,磁道被分割成多个部分。每部分的弧长加上到圆心的两个半径,恰好形成一个扇区,所以叫做扇区。扇区是磁盘中最小的物理储存单位。通常情况下每个扇区的大小是512字节。(由于不断提高磁盘的大小,部分厂商设定每个扇区的大小是4096字节)

或者可以包括2的n次方个扇区

是操作系统中最小的逻辑存储单位,操作系统与磁盘/硬盘打交道的最小单位是磁盘块。硬盘的读写以扇区为基本单位

:内存的最小存储单位,页的大小为磁盘块大小的2的n倍;操作系统与内存打交道的最小单位是页

嵌入式面试题之单片机知识相关推荐

  1. 单片机c语言面试笔试,c语言面试题集(单片机)..doc

    c语言面试题集(单片机). c语言面试题集(单片机) 1.预处理器(Preprocessor)1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define S ...

  2. 单片机和嵌入式哪个好?单片机会被嵌入式取代吗?

    很多初学者都搞不清楚单片机和嵌入式的区别. 今天就和大家来聊一聊这个话题. 嵌入式和单片机,我喜欢用老爸和儿子的关系来区分它们. 嵌入式开发细分很多方向,而单片机就是其中一个方向. 除了单片机以外,还 ...

  3. 从事嵌入式开发需要掌握哪些知识?从事嵌入式软件开发的前景如何?

    什么是嵌入式? 嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一.嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器.存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很 ...

  4. 到底什么是嵌入式?什么是单片机?

    今天转一篇小枣君的文章,希望初学者对嵌入式.单片机的概念有一定认识,同时,也希望大家不要对单片机,或者嵌入式有所偏见. 凡是从事计算机或电子信息相关领域工作的童鞋,一定都听说过嵌入式和单片机吧? 很多 ...

  5. 【机试题】2014大疆嵌入式笔试题(附超详细解答,下篇)

    上一篇主要是对<2014大疆嵌入式笔试题>的前一部分进行了解答,本文主要是对接下来的几道题进行解答.想要参考上一篇的点击链接:[机试题]2014大疆嵌入式笔试题(附超详细解答,上篇). 嵌 ...

  6. 到底什么是嵌入式?什么是单片机?究竟有何区别?

    本文转载自微信公众号 "鲜枣课堂",作者:小枣君          凡是从事计算机或电子信息相关领域工作的童鞋,一定都听说过嵌入式和单片机吧?     很多人应该知道,这两个名词和 ...

  7. 【韦东山】嵌入式全系统:单片机-linux-Android对硬件操作的不同侧重点

    在线课堂:https://www.100ask.net/index(课程观看) 论  坛:http://bbs.100ask.net/(学术答疑) 开 发 板:https://100ask.taoba ...

  8. 嵌入式开发试题1-100

    嵌入式开发试题1-100题目1:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去掉不满足条 ...

  9. 计算机基础八进制和十六进制试题,计算机基础知识考试试题

    计算机基础知识考试试题 计算机基础知识考试试题 一.选择题 1.计算机中数据的表示形式是(C )A)八进制B)十进制C)二进制D)十六进制 2.计算机硬件能直接识别和执行的只有(D )A)高级语言B) ...

最新文章

  1. 引用和const 引用的区别(转自chinaitlab)
  2. cnc加工中心保养表_CNC加工中心有哪些日常保养方法?
  3. HihoCoder - 1829 Tomb Raider(暴力)
  4. [Linux] 020 RPM 包的命名原则与其依赖性
  5. web安全之CSRF
  6. 155个建议笔记--建议33:不要覆写静态方法
  7. reload maven project' has encountered a proble 问题
  8. 揭开OpenStack 统计资源和资源调度的面纱
  9. Android:使用 Intent 连接多个活动
  10. docker没有下载完全_一个时代的结束:苹果正式关闭iTunes,但歌曲下载并没有完全消失...
  11. 新格局初现、新玩家加入、新融资升温,2017年数据库领域有点热闹
  12. 小峰servlet/jsp(4)EL表达式
  13. c数据库读写分离和负载均衡策略
  14. 那些年用过的机械键盘--游戏人生键盘风云#入坑keychron#
  15. fisheye calib视野调整
  16. 小白都能看懂的java虚拟机内存区域划分
  17. 火柴人生存挑战2html5游戏在线玩,火柴人生存挑战
  18. 深入C#里static readonly的安全性与内存分配[原创]
  19. 如何学C语言,新手必看!
  20. 公众责任险与职业责任险的区别

热门文章

  1. 使用Numpy快速分析股票数据——计算移动平均线及日周均线之间的转换
  2. linux dvb设备信息,Linux DVB api 笔记
  3. 小米线刷包需要解压么_小米刷机包后缀名
  4. 疫情之下的远程办公解决方案
  5. Dell Inspiron 1525 安装声卡驱动的过程
  6. android开发笔记之Makefile(一)
  7. goldengate静默安装方法
  8. P8311 [COCI2021-2022#4] Autići
  9. 如何系统的自学网络安全
  10. 机器人操作系统(ROS)入门