- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 嵌入式linux-----C语言高级专题(1)-----内存这个大话题
1.1 程序运行为什么需要内存①1.2 程序运行为什么需要内存②冯诺依曼结构和哈佛结构冯诺依曼结构是:数据和代码放在一起。哈佛结构是:数据和代码分开存在。什么是代码:函数什么是数据:全局变量、局部变量在S5PV210中运行的Linux系统上,运行应用程序时所有的应用程序的代码和数据都在DRAM,这种结构就是冯诺依曼结构;在单片机中,我们把程序代码烧写到Flash(NorFlash)中,然后程序在Flash中原地运行,程序中所涉及到的数据(全局变量、局部变量)必须放在RAM(SRAM)中,这种
2021-07-12 10:12:03
281
原创 需要了解的ZigBee知识
什么是ZigBee的PANID?PANID是ZigBee设备的网络标识符。ZigBee有16个channel可以选,那么代表相同区域只可以建立16个网络了吗?所以在同一个channel里面用PANID来区别不同的网络。理论上一个channel里面可以建立65535个不同的网络,实际要经过测试才可知。ZigBee的16位短地址和64位扩展地址Zigbee的IEEE地址,也叫做扩展地址。这是一个64位的地址,由设备商固化到设备中;Zigbee地址是所谓的网络地址,也就叫做短地址。这是一个16位的地址。这.
2021-07-08 20:36:39
1498
原创 嵌入式linux-----ARM裸机(9)-----定时器、看门狗和RTC
1.什么是定时器(1)定时器介绍定时器是SoC中常见外设,计数器计数乘以固定的计数周期时间就相当于定时器的功能。定时器的作用相当于定个闹钟。计时完成后会产生中断,从而执行事先设定的事件。单核的CPU就要用定时器,因为它只能同时做一件事,不能一直盯着时间(定了时间后定时器就专门负责到时间提醒CPU来处理事情)。(2)定时器原理定时器内有计数器,计数器根据时钟来工作,时钟源来自于ARM的APB总线,经过时钟模块内部的分频器来分频得到。每隔一个时钟周期就计数一次。定时器内部有一个寄存器TCNT,假设开始
2021-05-17 20:29:55
709
原创 嵌入式linux-----ARM裸机(1)-----ARM体系结构与汇编指令
1.从源代码到CPU执行过程.c等高级语言经过编译器编译后转换为.s汇编源代码经过汇编器转化为elf格式二进制可执行程序通过Objcopy工具转化成Bin格式烧录文件通过总线传送到CPU中进行解码在CPU内部进行控制指令使CPU开始运作。2.汇编语言与C等高级语言的差异(1)汇编难写,C好写(2)可移植性,汇编<C<java(3)效率,汇编>C>Java(4)汇编不适合完成大型复杂的项目,更高级的语言适合。3.汇编语言的本质是机器指令的助记符(如MOV),是一款CPU
2021-05-17 20:12:21
214
原创 嵌入式linux-----ARM裸机(8)-----按键和CPU的中断系统
1.什么是按键(1)按键的物理特性一般的按键都有4个引脚,这4个引脚成2对:其中一对是常开触点(不按则断开,按下则闭合);一对是常闭触点(不按时闭合,按下后断开)。一般用常开。(2)按键的电学原理硬件接法:SW1:GPH0_2 SW2:GPH0_3 SW3/4/5/6:GPH2_0/1/2/3。按钮没有按下时是高电平,按下时接地为低电平,电阻要选大一点,不然功耗太大了,太小的话电平会不稳。(3)按键属于输入类设备。单纯的输入设备,如按键、触摸屏等;单纯的输出设备,如LCD;既能输入又能输出的,
2021-05-13 17:37:30
420
1
原创 E: Unable to locate package lib32ncurses5最新解决方案(无法定位软件包)
今天重新装了一个虚拟机,版本是Ubuntu20.04,然后装兼容32位库的时候,发现有多个类似E: Unable to locate package lib32ncurses5 的错误。在网上找了各种解决方案都无效果,最后在一篇最新的文章中发现了一个解决方案,尝试一下成功了。 **原因:**从上面这个报错其实也知道原因了,就是在“更新源地址平台上”找不到相应的“lib32ncurses5”软件包。找不到软件包通常是软件包名输入错误,或者说,没有这个软件包了,有些软件包可能会被移除或被其它的软件包替代了
2021-05-11 22:36:34
22473
13
原创 嵌入式linux-----ARM裸机(7)-----串口通信详解
1.通信涉及的几个基本概念差分传输是一种信号传输的技术,区别于传统的一根信号线一根地线的做法,差分传输在这两根线上都传输信号,这两个信号的振幅相同,相位相反。在这两根线上的传输的信号就是差分信号。信号接收端比较这两个电压的差值来判断发送端发送的逻辑状态。优点是抗干扰能力强;缺点是需要两根线,导致电路板面积紧张。2.串口通信的基本概念(1)串口通信的特点:异步、电平信号、串行异步:串口通信的发送方和接收方之间是没有统一的时钟信号的。电平信号:串口通信出现的时间较早,速率较低,传输的距离较近,所以干扰
2021-04-01 15:20:44
802
原创 嵌入式linux-----ARM裸机(6)-----S5PV210的时钟系统
1.SoC时钟简介SoC内部有很多器件,譬如CPU、串口、DRAM控制器、GPIO等内部外设,这些东西要彼此协同工作,需要一个同步的时钟系统来指挥。(1)时钟的产生①外部输入时钟信号(如控制多个CPU时,很少使用)②外部晶振+内部时钟发生器(大部分低频单片机)③外部晶振+内部时钟发生器+内部PLL(锁相环)产生高频时钟+内部分频器分频得到各种频率的时钟(210属于这种)注1:之所以不外部提供高频信号,是因为芯片外部电路不适宜使用高频率,传导辐射比较难控制,且高频率的晶振太贵。注2:为什么先高频
2021-03-27 19:54:07
176
原创 嵌入式linux-----ARM裸机(5)-----SDRAM和重定位relocate
1.看门狗watch dog timer现实中因为一些外部因素,电子设备经常会跑飞或者死机(譬如极端炎热、极端寒冷、工业复杂场合)。在这种情况下我们希望设备自动复位而不需要人工干预(无人值守)。看门狗用来完成这个工作。看门狗其实是我们SoC内部的一个定时器(类似于闹钟,类似于门口的狗),定好时间之后看门狗定时器会去计时,时间到之前(狗饿了之前)必须去重新置位看门狗定时器(喂狗),如果没有喂狗则系统会被强制复位。系统在正常工作时,系统软件会自己去喂狗,所以看门狗定时器不会复位。但是系统一旦故障跑飞啥的,看门
2021-03-26 10:16:04
339
原创 嵌入式linux-----ARM裸机(4)-----GPIO和LED
1.dnw工具软件的功能是通过USB连接开发板和电脑,然后从主机下载文件镜像到开发板中去烧录系统。下载时需要安装dnw的USB驱动、连接USB线、设置dnw下载内存地址。设置裸机下载地址download address为0xd0020010(因为USB启动做裸机实验时,不需要16字节的校验头,所以直接下载到该地址)。注:安装驱动前需要禁用数字签名(百度),安装成功后dnw软件中USB:OK。2.USB启动配合dnw工具下载进行裸机实验当检测到设置的是USB启动时,S5PV210就会从USB口连接主机
2021-03-12 17:38:06
2489
原创 嵌入式linux-----ARM裸机(3)-----开发板、原理图和数据手册
1.什么是刷系统?用刷机工具向开发板中烧录预先编译好的系统镜像,使之在开发板上运行起来。2.串口输出的意义?串口是一种硬件通信口。很多年前串口是CPU直接通信的主要接口。由于其通信速率很低,所以现在使用串口主要用于程序输出的监控、调试。桌面电脑可以打开一个虚拟控制台(cmd),嵌入式系统一般用串口来做控制台。一般用一根串口线连接开发板的串口和笔记本的串口,然后在电脑上打开一个串口监视,这样开发板上的串口输出内容就可以在电脑上看到。还可以通过监视终端向开发板输入一些控制命令由开发板执行。常用的串口监视
2020-12-28 15:05:12
497
原创 嵌入式linux-----ARM裸机(2)-----ARM体系结构与汇编指令
1.从源代码到CPU执行过程.c等高级语言经过编译器编译后转换为.s汇编源代码经过汇编器(也是编译器中的一种)转化为elf格式二进制可执行程序通过Objcopy工具转化成Bin格式烧录文件通过总线传送到CPU中进行解码在CPU内部进行控制指令使CPU开始运作。2.汇编语言与C等高级语言的差异(1)汇编难写,C好写(2)可移植性,汇编<C<java(3)效率,汇编>C>Java(4)汇编不适合完成大型复杂的项目,更高级的语言适合。3.汇编语言的本质是机器指令的助记符(如
2020-12-23 11:08:47
551
原创 嵌入式linux-----ARM裸机(0)-----ARM那些你得知道的事
1.ARM的成长史ARM前身是爱康电脑(Acorn),后受苹果和VLSI的投资,成立独立子公司Advanced RISC Machines(ARM)。2.大部分的嵌入式CPU设计版权都是ARM的。3.ARM不生产芯片,只设计芯片并出卖版权。4.本次用的是cortex-A8处理器中三星的S5PV2105.ARM的几种版本号(1)ARM内核版本号,如ARMv7(v是version,版本)(2)ARM SoC版本号,如Cortex-A8(3)芯片型号,如S5PV210注:ARM内核版本号和So
2020-12-18 21:10:52
2366
1
原创 嵌入式linux-----基础预科(3)-----嵌入式linux C语言编程基础
1.C语言基本概念源文件:.c文件头文件:.h文件(head)C语言代码由源文件和头文件组成。返回值要和函数的声明值的类型对应2.写代码的步骤(1)编辑代码(2)编译得到可执行文件gcc hello.c -o hello(3)执行程序./hello(4)调试3.int整型变量如果算出来是小数,则自动舍去小数部分。浮点数float(小数点后六位)如果精度不够简单情况下就按照精度四舍五入,double精度更高(小数点后16位)。printf中打印整数用%d,打印浮点数用%f。4.字符
2020-12-15 12:44:37
212
原创 嵌入式linux-----基础预科(2)-----零基础学Linux
1.主流操作系统及其特点Windows、Android、iOS、Linux/Unix、Symbian。Windows:傻瓜式、好学习、工资低Linux:操作麻烦、学习难、免费、开源、性能好、可移植性好、设计理念好Android:移动操作系统,Android是基于Linux的。iOS:优秀、创造性、走钢丝嵌入式操作系统:Linux+WinCE当前:消费电子Android,工业Linux2.多机开发:双系统与虚拟机开发嵌入式程序需要Linux环境,但Windows中有很多好用的软件,如note
2020-12-15 12:43:18
275
原创 嵌入式linux-----基础预科(1)-----嵌入式软件工程师完全学习指南
嵌入式软件工程师完全学习指南1.嵌入式要求低功耗,如Bluetooth、Zigbee,不过现在也有了低功耗的WiFi,所以用WiFi也挺好。2.RISC CPU(ARM、MIPS)朱有鹏老师嵌入式linux基础预科——学习笔记
2020-12-15 12:41:12
135
原创 51单片机(12)-------直流电机和步进电机
1.IO口输出的高低电平电流过小不足以驱动直流电机,使用驱动模块(芯片)后可以驱动电机。2.什么是步距角?即步长,和步进电机本身有关,步进电机一般以步距角的整数倍运动。3.相数越高越精确4.步进电机拍数及时序5.步进电机系统的三个部分:控制器(单片机)、驱动器(芯片)、步进电机。6.反转,把赋值顺序反过来即可。...
2020-11-18 21:24:05
774
原创 51单片机(10)------定时器和计数器
1.计数器计算外部时钟时用作计数器,计算内部时钟时用作定时器。2.软件 寄存器 硬件3.4.确定TH0、TL0?(1)确定定时时间,如50ms(2)确定内部时钟周期,如12T模式,外部晶振为12MHz时,机器周期(内部时钟周期)为1us(3)定时个数:50ms/1us=50000(4)TL0=15535%256;TH0=15535/256。(51单片机是减法定时器,现代的单片机和嵌入式SoC一般都是减法计时器)5.单片机中取反有两种,!是对位变量取反,~是对字节变量按位取反6.定时器
2020-11-17 21:01:17
562
原创 51单片机(9)-------按键
1.上拉电阻的作用?让IO口的电平保持高电平。在有按键按下的时候,端口直接接地,相当于CPU收到一个低电平信号。2.CPU是如何监测按键信息的?(1)轮询式,可以加delay,也可以不加。(2)中断式3.什么是按键抖动?如何消抖?(1)通常按键都是机械开关,触点有弹性作用,在闭合和打开时不会很稳定,有一连串的抖动,抖动导致电平不稳定,从而会产生误判,即识别为多次按下按键,如图1所示。(2)硬件消抖:在按键上加装电容,主动消抖;软件消抖:在识别到按键按下后延迟10ms再次判断按键是否按下,如果仍
2020-11-16 16:07:04
742
原创 51单片机(8)-------点阵
1.8*8LED点阵用74HC595串并转换移位寄存器可以节省IO口,用串行输入来并行输出和串行输出,由原先的16个IO口变为3个(数据口、SRCLK、RCLK),串行输出口用来级联。SCLK是移位时钟,RCLK是锁存时钟。2.如果不进行锁存,也还是有正常输出,只不过锁存后即使没有输入输出也还在。3.函数三要素:函数定义;函数声明;函数调用。4.宏定义#define uchar unsigned char//相当于用uchar代替长度较长的unsigned char。5.函数定义的时候,括号中变量和
2020-11-14 20:44:50
485
原创 51单片机(7)-------数码管
1.共阳极和共阴极数码管除了驱动方法的差异外,驱动电流的需求也有差异。数码管(其实就是LED)如果是共阳极,那么单片机可以驱动显示;如果是共阴极,单片机则不能驱动显示(或者灯光微弱),因为单片机的IO口无法提供足够高的电流,此时需要外部电路器件提供一个大电流驱动的芯片(如数码管接的74HC245)2.静态和动态数码管是一种数码管,只是驱动方法不同,需要一个就选择静态,多个就选择动态(省IO端口)。3.数码管如何消隐?出现影子的原因,段码P0还未变0x5b时即在P0=0x06处产生了位码P1=0xfd
2020-11-10 17:19:38
568
原创 51单片机(6)-------LED灯
1.高阻抗是什么?说明输出端电阻无穷大,视为断开。2.OE:output enable输出使能,为0时输出高阻抗(无论输入是什么),为1时正常输出。3.单片机执行完亮灯程序后,执行STARTUP.A51程序进行空转,不能停下,否则程序会跑飞。4.char的范围是-128~127,unsigned char的范围是0-255;char型变量有符号,unsigned char 没有符号;char型 和 unsigned char 可以看成整型和无符号整型;char型按整型输出就有了正负,按字符输出看不见
2020-11-09 16:48:28
148
原创 51单片机(5)-------写代码前的准备工作
1.IDE是什么?IDE(Integrated Development Environment)集成开发环境,是一套用来开发的完整的软件系统,如keil uvision。2.Keil和MDK的关系?本来keil只能用来开发51单片机,后来ARM公司收购了keil,基于keil扩展了ARM的开发,主要用来开发Cortex-M系列单片机的程序,如STM32,软件名改成了MDK。(keil C51/MDK)3.工程文件、源文件、目标文件?工程文件在建立新工程后即自动出现,源文件是我们写的源代码,目标文件
2020-11-04 13:36:15
323
原创 51单片机(4)-------单片机开发板
1.用普中科技的下载软件向STC89C516中下载程序选芯片类型为STC89Cxx(New)而不是STC89Cxx series。2.用STC-ISP下载需要冷启动,即先断电再点下载再打开电源。STC-ISP中STC89C516的芯片类型在STC89C58芯片中,而不是STC89C516RD。 3.按照文档正确操作但是不能下载?(1)一步一步退回到之前可以下载的情况,看是否解决(2)如果不行,给整个开发板完全断电(插拔USB线3秒以上)4.单片机液晶屏不亮?后发现接的屏幕是LCD9648,下载的
2020-11-02 14:58:32
1062
原创 51单片机(3)-------单片机的种类
1.51单片机发展史?Intel公司最早推出51系列单片机,后将51内核免费开放,由各个厂商设计兼容型的51单片机,国内现在主要用的都是宏晶科技的STC51。2.主流单片机有哪些?51单片机,低价格低性能;PIC单片机,性能稳定常用于工业应用;AVR单片机(如AT89C51),过气了(早年渠道出现问题,缺货,公司弃用);ARM Cortex-M系列单片机(如意法半导体集团(STM)的STM32,M3内核),高性能、高性价比、功耗低。3.1T单片机。早期的典型的51单片机外部接12MHz晶振,内部电路
2020-10-29 18:57:28
1762
原创 51单片机(2)-------单片机是什么
1.什么是IC?IC(integrated circuit)集成电路,就是用微器件为积木,去搭建一个具备一定功能的电路板。以前没有微器件的时候,需要用很大的电路板才能实现一个功能,微器件可以小到mm甚至nm级别,把这些电路做在一起,用塑料外壳封装起来就形成了IC芯片,用的是半导体工艺。2.什么是CPU?CPU的工作原理?(1)CPU是一块超大规模集成电路。CPU=运算器+控制器=ALU+cache+Bus=汇编指令+寄存器。(2)CPU通过总线从存储器取出指令到内部,然后译码,然后执行;一条指令包
2020-10-29 12:03:19
823
原创 51单片机(1)-------单片机基础
1.单片机和CPU有什么区别?CPU是用来做运算和控制的电子电路器件,是计算机的核心;单片机是CPU中的一种,是比较简单的CPU,常用于小家电。(SoC是CPU的升级版,应用级CPU,用于手机电脑等,于嵌入式中进行学习;FPGA是硬件开发,开发制造半导体芯片,而单片机则是使用芯片,属于两个不同行业;CPLD和FPGA类似;DSP也是一种CPU,用于运算量比较大的行业,其擅长运算,而单片机擅长控制)2.单片机和物联网的关系??单片机是物联网节点设备的主控CPU,ARM的公司推出的cortex-M7内核
2020-10-26 16:59:58
341
原创 常见企业拓扑Cisco配置:三层交换机互联、DHCP配置、路由器交换机配置、NAT静态地址转换、DMZ区域的ACL配置
常见企业拓扑Cisco配置:三层交换机互联、DHCP配置、路由器交换机配置、NAT静态地址转换、DMZ区域的ACL配置网络拓扑及要求任务一:建立三层交换机互联拓扑,A楼静态,B楼DHCP任务二:拓扑添加路由器、服务器、云,完成A楼三层交换机和路由器的配置,使得PC可以使用代理IP访问外网1.1.1.254任务三:拓扑添加路由器、公司财务服务器,限制部分主机访问财务服务器网络拓扑及要求1.公司的四个部门分别使用独立的IP段且可以互通。其中办公楼A要求使用静态IP,办公楼B使用DHCP。(三层交换机互联、
2020-07-28 17:06:18
5504
1
普中51单片机开发攻略-A6
2020-11-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人