嵌入式开发
Edison Tao
Linux爱好者
展开
-
MOSFET详解
MOSFET愿意:MOS(Metal Oxide Semiconductor精神氧化物半导体),FET(Field Effect Transistor场效应晶体管),即以金属层(M)的栅极隔着氧化物(O)利用电场的效应来控制半导体(S)的场效应晶体管。 但随半导体技术的进步,现代的MOSFET栅极早已用多晶硅取代了金属。一、P型MOS管 1. P-MOS的GS电压是反偏的,即S极的电压大于G极的电压,电流的流向为从S->D。 2....原创 2021-03-22 16:24:20 · 5722 阅读 · 0 评论 -
为什么N型MOS管占据主导地位
为什么N型MOS管占据主导地位,P型MOS管现在越来越少了,主要有几个方面的原因:1. N型MOS管由于自身的原因,开关速度很快,2. P型MOS管由于工艺的影响,没有N型MOS管快,因此开关损耗就会比N型MOS管大, 发热量就会比N型MOS大。3. N型MOS管耐压比较高,P型MOS相对N型MOS来说比较低,所以高压的应用场合很少看到 P型MOS管。更多的是N型管。4. N型MOS管通过的电流能力比较大,而P型MOS通过的电流能力相对于N型MOS管来说比较小,总结:考虑到电路的性能参...原创 2021-03-18 10:19:15 · 3738 阅读 · 1 评论 -
电感的特性
一、电感的电流是渐变的 电感的电流是渐变的,因为自感电动势会阻碍电感电流的变化。自感电动势与电感的电流变化率正比。 当电感的电流变化率为0时,自感电动势就为0。二、电感的自感会阻碍电流的变化 就是楞次定律三、自感方向与电流方向相反四、电感是存储能量元件,本身不耗能 和电容一样,电感是不耗能的。电感是以电流的形式来储存能量的。电流越大(动能)存储的能量就越大。 而电容是以电压(电荷)的形式来存储能量的。注意:电感电流的波...原创 2021-02-23 17:21:28 · 9256 阅读 · 0 评论 -
三极管的五大特性
三极管的五大特性一、Ib控制Ic 三极管(晶体管)箭头的方向为电流方向。 NPN型电流由B->E,PNP型电流由E->B 三极管是流控流型的 ,流控流型即电流控制电流,小电流Ib控制大电流Ic。二、三极管具有放大功能 Ib上面流过的电流很小,假设Ib上面流过的电流为1mA的话,Ic上面的电流是成倍于Ib的,Ic的电流是Ib的90~100倍,即100mA这样。三、对于NPN管,e极接地时,Ib>=1mA时,Rce≈...原创 2021-02-22 18:03:04 · 15467 阅读 · 0 评论 -
大白话解读电容
C = Q/V(你把电荷量Q想象成圆柱体的体积,把电容上面加的电压想象成圆柱体的高度,把电容量想象成圆柱体的底面积)。Q(体积)= C(底面积)*V(高)原创 2021-02-03 09:47:34 · 278 阅读 · 0 评论 -
linux下执行shell脚本报bad interpreter: No such file or directory错误
执行权限是够的原因是这个shell脚本是在windows下编辑的,windows下的换行符是"\r\n",linux下的换行符是'\n',因此windows中的编辑器写的shell不能在linux下运行解决办法:在linux下通过vi编辑器编写。...原创 2020-06-23 16:57:45 · 529 阅读 · 0 评论 -
uboot和系统移植-第2部分-2.2 补基础之shell和Makefile
uboot和系统移植-第2部分-2.2 补基础之shell和Makefile第一部分、章节目录2.2.1 shell介绍2.2.2 动手写第一个shell2.2.3 shell编程学习12.2.4 shell编程学习2第三部分 随堂记录2.2.1 shell介绍2.2.1.1 shell是操作系统的终端命令行(1)shell可以理解为软件系统提供给用户操作的命令行界面,可以说它是人机交互的一种方式。(2)我们可以使用shell和操作系统、uboot等软件系统进行交互。具体来说就是我.原创 2020-06-19 17:45:47 · 239 阅读 · 0 评论 -
uboot和系统移植-第1部分-2.1 uboot学习前传
uboot和系统移植-第1部分-2.1 uboot学习前传第一部分、章节目录2.1.1. 为什么要有uboot(1)uboot最主要作用是用来启动操作系统内核。因为操作系统内核本身不能自己启动自己。就像闹钟这东西是用来叫人起床的,人不能自己叫醒自己。(2)uboot除了启动操作系统,还有别的一些辅助功能2.2.1.1 计算机系统的主要部件(1)计算机系统就是有CPU来做核心进行运行的系统。典型的计算机系统有:PC机(台式机+笔记本)、嵌入式设备(手机、平板电脑、游戏机)、单片机(家用电器像电原创 2020-06-11 18:03:16 · 559 阅读 · 0 评论 -
指针
操作指针就是操作内存1. 内存结构回顾1.1 内存是由字节组成的1.2 每一个字节都有一个地址1.3 这个地址用来干嘛的 通过这个地址找到这个内存空间2. 地址就是指针 地址的别称就是指针。地址就是指针,指针就是地址。 (1)为什么将地址称为指针 比如给张三取个外号叫胖子,为什么叫胖子,因为他的特点就是很胖啊,大家习惯以后就不喜欢叫他张三了,叫胖子感觉更加亲切。...原创 2020-06-02 18:16:21 · 338 阅读 · 0 评论 -
存储器的结构
1. 存储器的结构1.1 所有存储器的组成结构都是相同的 不管是临时存储器还是永久存储器,存储器的组成结构都是一样的,所不同的只是实现材料和实现工艺,因为材料和工艺而不同,一个是临时存储的,另一个是永久存储的。 就像一次性纸碗和永久性的瓷碗一样,都是碗型的结构,只不过实现材料和工艺不一样,因为材料和工艺的不同,性能有所差异,一个是一次性的,另一个是永久性的。2. 例子:3*8存储器结构 不论哪种存储器(临时还是永久的),都必须有数据线,地址线,控制线,比如...原创 2020-06-02 17:29:18 · 3421 阅读 · 0 评论 -
基带信号与载波信号
基带信号:承载有信息的就是基带信号。载波信号:用于装载基带信号,载波信号好比卡车,基带信号好比货物。原创 2020-05-29 08:57:10 · 3992 阅读 · 0 评论 -
主流的外存设备介绍
1. 主流的外存设备介绍内存和外存的区别:一般hi把这种RAM(random acess memory,随机访问存储器,特点是任意字节读写,掉电丢失)叫内存,把ROM(read only meeory,只读存储器,类似于Flash SD之类的,用来存储东西,掉电不丢失,不能随机地址访问,只能以块(一次访问多个字节)为单位来访问)叫外存。2. 迄今为止人类发明的外存设备又哪些,分为5类2...原创 2020-02-26 17:35:35 · 1399 阅读 · 0 评论 -
LCD显示器
1. LCD简介(1)LCD(Liquid Crystal Display)俗称液晶。(2)液晶是一种材料,液晶这种材料具有一种特点:可以在电信号的驱动下液晶分子进行旋转,旋转时会影响透光性,因此我们可以在整个液晶面板后面用白光照(称为背光),可以通过不同电信号让液晶分子进行选择性的透光,此时在液晶面板前面看到的就是各种各样不同的颜色,这就是LCD显示。(3)被动发光和主动发光,有些显...原创 2020-02-25 17:58:55 · 960 阅读 · 0 评论 -
定时器详解
1. 什么是定时器(timer)定时器实际上就是Soc当中的一个内部外设。(1)定时器与计数器定时器常与计数器扯到一起,计数器也是soc当中的一个内部外设,计数器顾名思义是用来计数的,就和我们的秒表一样,秒表实际上就是一个计数器,每隔一个单位走一个格(就是计一个数),因为计数器的计数时间周期是固定的,因此到了一定时间只要用计数值*计数时间周期,就能得到一个时间段,这个时间段就是我们定的...原创 2020-02-21 13:14:08 · 28099 阅读 · 0 评论 -
I2C通信全面解析
1. 物理接口: SCL + SDA(1)SCL(serial clock):时钟线,传输CLK信号,一般是I2C主设备向从设备提供时钟的通道。(2)SDA(serial data):数据线,通信数据都通过SDA线传输2. 通信特征:串行、同步、非差分、低速率(1)I2C属于串行通信,所有的数据以位为单位在SDA线上串行传输。(2)同步通信就是通信双方工作在同一个时钟下,一般...原创 2020-02-19 18:03:25 · 33702 阅读 · 6 评论 -
链接脚本是做什么的?
链接脚本其实是个规则文件,它是程序员用来指挥链接器工作的。链接器会参考链接脚本,并且使用其中规定的规则来处理.o文件中那些段,将其链接成一个可执行程序。链接脚本的关键内容有2部分:段名(用来在.o文件里面去定位这一段)+地址(作为链接地址的内存地址),段名是用来找原材料的,地址是用来找位置的,把这个段名放到这个地址去就好了。链接器相当于一个打包器,你的段名告诉它打包什么物品,地址告诉它打包...原创 2020-01-15 11:02:27 · 1106 阅读 · 0 评论 -
程序段的概念:代码段、数据段、bss段(ZI段)、自定义段
段就是程序的一部分,我们把整个程序的所有东西分成了一个一个的段,给每个段起个名字,然后在链接时就可以用这个名字来指示这些段。也就是说给段命名就是为了在链接脚本中用段名来让段站在合适的位置。段名分为2种:一种是编译器链接器内部定好的,先天性的名字;一种 程序员自己指定的,自定义的段名。先天性段名: 代码段: (.text),又叫文本段,代码段其实就是函数编译后生成的东西。...原创 2020-01-13 13:30:01 · 6726 阅读 · 0 评论 -
手机的eMMC 5.1、UFS 2.1到底是啥意思?哪个更好?
手机在存储空间这块大家可能都见过,eMMc 5.1 或者UFS 2.0 这两个东西,今天我们来了解一下这两个都是什么意思?为什么越来越多的旗舰手机开始采用UFS了呢?eMMc和UFS都属于两个不同的存储标准,eMMC是由MMC协会制定的,这个标准主要就是针对的手机和平板电脑的内置存储的一个标准。eMMC的特点就在于结构非常简单,它直接在封装中集成了控制器像我们熟悉的eMMC 5...原创 2020-01-06 17:56:13 · 5393 阅读 · 0 评论 -
手机电池的快充是什么原理?
在了解快充之前先来了解一下手机的充电电池,我们现在的手机电池都是锂离子聚合物电池,它的结构也非常简单,电池的正极部分是钴酸锂这样的材料,电池的负极是类似吸水海绵一样的材料,然后再加入电解液,这个就是我们电池的结构。比如我们开始给手机电池充电,正极部分的电子就会向负极移动,同时,电池正极部分的锂离子会穿过中间的绝缘隔膜移动到负极,存储在像海绵一样的材料中,当正极的锂离子全部移动到了负极就意味...原创 2020-01-06 16:50:45 · 4642 阅读 · 0 评论 -
什么是cache,有什么用?
cache是一种内存,叫高速缓存,英文单词的意思就是缓存。从容量来说:CPU < 寄存器 < cache < DDR从速度来说: CPU > 寄存器 > cache > DDR从价格来说: CPU > 寄存器 > cache > DDRcache的存在,是因为寄存器和DDR之间速度差异太大,DDR的速度远不能满足寄存器的需要(不...原创 2019-12-30 17:31:15 · 17420 阅读 · 1 评论 -
volatile有什么用?
Volatile的作用是让程序在编译时,编译器不对程序做优化。优化有时候是OK的,但是有时候是自作聪明会造成程序不对。如果你的一个变量是易变的,不希望编译器帮我们做优化,就在这个变量定义时加volatile。加不加有没有差别,取决于编译器。如果编译器做了优化则有差异; 如果编译器本身没做优化,那就没有差别。例如:voild delay(void){ volatil...原创 2019-12-30 09:37:58 · 435 阅读 · 0 评论 -
使用C语言来访问ARM寄存器的语法
ARM寄存器的地址类似于内存地址(IO与内存统一编址的),所以这里的问题是用C语言读写寄存器,就是用C语言来读写内存地址。用C语言来访问内存,就要用到指针:例如某寄存器的地址为0xE0200240;define GPJ0CON 0xE0200240unsigned int *p = (unsigned int *)0xE0200240;*P = 0x11111111;上面这两句其实...原创 2019-12-25 09:58:04 · 2340 阅读 · 0 评论 -
大白话解读 同步与异步
异步: 两个人没有一个同步时钟,没有一个同步节拍,完全是一种响应式的。 就像我要约你明天早上去跑步,我起来后我去叫你,你只管睡着,什么时候 来叫你什么时候去,这就得靠中断(一种特殊的异常)来实现同步: 大家约好明天早上9点见面,到点就来了,双方各自都知道。 比如说跳舞,音乐就是一种同步指令,就相当于我们的时钟,所有人不用看别人,...原创 2019-08-14 14:11:37 · 308 阅读 · 0 评论 -
编译海思Hi3518EV200 报错"mkimage" command not found - U-Boot images will not be built
解决方法为把cp /opt/Hi3518E_SDK_V1.0.2.0/osdrv/opensource/uboot/u-boot-2010.06/tools/mkimage /usr/bin/拷贝出来放到 /usr/bin/或者/bin/或者/sbin目录下面原创 2018-09-04 10:42:24 · 483 阅读 · 0 评论 -
ARM公司发展历程 - 从1985年至今
2012ARM,Gemalto 和 G&D 公司组建合资公司,以提供下一代移动安全第一个Windows RT(ARM上Windows)设备发布ARM,AMD, Imagination,MediaTek 和德州仪器(TI)创建异构系统体系结构(HSA)基金会并成为创始成员ARM和TSMC合作开发FinFET器件工艺技术,将应用于下一代64位ARM处理器ARM创建首个创建技术蓝图“互...转载 2018-08-31 15:33:24 · 5354 阅读 · 0 评论 -
移动芯片巨头英国ARM的发展史
原文链接PS:这几年智能手机迅猛发展,必将成为下一个主要网络终端。也造就了ARM这家新兴的芯片巨头,英国ARM公司在移动芯片领域目前已占领了90%左右的全球市场!下文是介绍这家鲜为人知(相对于intel和amd来说)的芯片巨头的发展史。2011年1月6日,微软公司宣布,下一版Windows将正式支持ARM处理器。这是计算机工业发展历史上的一件大事,标识着x86处理器的主导地位发生动摇。目前在...转载 2018-08-31 15:23:56 · 2068 阅读 · 0 评论 -
ubuntu 16.04 图形化配置make menuconfig 版本 busybox-1.27.0报错的解决方法
#/data/busybox/busybox-1.27.0/scripts/kconfig/Makefile:14: recipe for target 'menuconfig' failed#make[1]: *** [menuconfig] Error 1#Makefile:443: recipe for target 'menuconfig' failed#make: *** [men...原创 2018-08-28 09:49:31 · 754 阅读 · 0 评论 -
Ubuntu命令
1. apt #安装软件包命令 #APT(Advanced Packaging Tools) #APT可以自动下载、配置、安装二级制或者源代码格式的软件包,自行解决依赖问题。 #对于Red Hat Enterprise Linux及其派生发行版(CentOS、Fedora等)采用的是yum(Yellow dog updater,modified) #适用于...原创 2018-08-27 18:05:24 · 295 阅读 · 0 评论 -
Ubuntu 16.04 FTP服务器安装及配置
FTP File Transfer Protocol文件传输协议,两台计算机传送文件的协议,客户端可以通过FTP命令从服务器下载,上传文件,修改目录。可以通过命令vsftpd -version查看是否安装了vsftpd。1. 安装软件包vsftpd提示已经安装2. 创建ftp的账户及密码3. 配置文件在vsftpd.conf最后一行增加下图框选的内容创建...原创 2018-08-17 17:59:18 · 5930 阅读 · 0 评论 -
Ubuntu 16.04 NFS服务器配置及应用
在嵌入式开发中,我们希望我们的开发板挂载一个共享文件系统,这样我们在调试程序时就不用来回拷贝文件,例如通过TFTP或通过SD卡来回拷贝挂载。1. 首先在本机安装nfs-kernel-server软件包提示已经安装了nfs-kernel-server软件包2. 设置共享目录,比如想把本机的哪个目录共享出去,可通过命令 showmount -e 查询哪些目录已经共享出去了。需要注意的是...原创 2018-08-17 14:56:12 · 7867 阅读 · 0 评论 -
Ubuntu 16.04 samba服务配置
1. 首先要安装samba及smbfs这两个软件包 # apt install samba 提示samba软件包已经安装 提示smbfs软件包已经获取不到,请用cifs-utils软件包代替 提示软件包cifs-utils已经安装2. 接下来创建共享目录 设置最大权限 ...原创 2018-08-17 11:44:37 · 405 阅读 · 0 评论 -
编译海思Hi3518EV200 报错 /usr/bin/ld: i386:x86-64 architecture of input file `mkyaffs2image.o' is incompat
解决办法:这里使用的环境为ubuntu16.04 32位,之所以报错是因为这个SDK之前在64位的环境编译过,留下的中间文件mkyaffs2image.o没有清理干净,只要把这些mkyaffs2image.o在64位机器编译留下的中间文件清理干净,问题自然解决。切换到/opt/Hi3518E_SDK_V1.0.2.0/osdrv/tools/pc/mkyaffs2image/mkyaf...原创 2018-09-04 11:27:32 · 1950 阅读 · 0 评论 -
编译海思Hi3518EV200 报错serve_image.c:32:18: error: storage size of ‘hints’ isn’t known
究其原因,在于ubuntu操作系统版本太高,而SDK使用的mtd-utils版本太低导致(device/hisilicon/bigfish/sdk/tools/linux/utils/mtd-utils/mtd-utils-1.5.0),正常情况下,ubuntu12.04.04下支持mtd-utils-1.5.0,但是ubuntu16.04版本兼容不是很好,但是16.04支持mtd-utils-2...原创 2018-09-04 14:17:32 · 1236 阅读 · 0 评论 -
HI3518EV200 SDK安装并编译osdr
1、开发环境windows10电脑 + 虚拟机14 Pro + Ubuntu16.0.42、拷贝并解压。将 Hi3518E_SDK_V1.0.3.0.tgz拷贝到 Linux 服务器上。 cd ~/sambashare/ cp /mnt/hgfs/winshare/HI3518EV200/Hi3518E_V200R001C01SPC030/01.software/b...转载 2018-09-04 14:56:23 · 1965 阅读 · 0 评论 -
Linux应用编程和网络编程
Linux应用编程和网络编程第一部分 3.1 Linux中文件IO3.1.1 应用编程框架介绍3.1.1.1 什么是应用编程(1)整个嵌入式Linux核心课程包括5个点,按照学习顺序依次是:裸机、C高级、uboot和系统移植,linux应用编程和网络编程、驱动。(2)典型的嵌入式产品就是基于嵌入式Linux操作系统来工作的。典型的嵌入式产品的研发过程就是:第一步让linux系统在硬...原创 2019-02-25 18:32:33 · 893 阅读 · 0 评论 -
HiTool工具烧录Uboot过程简介
1. 烧录Uboot 2. 烧录过程,需要注意的是,烧录过程中要防止其他软件占用串口,比如CRT。原创 2018-09-18 19:03:07 · 16130 阅读 · 2 评论 -
Source Insight 3.5创建工程简介
1. 增加文件类型因为SI软件有个特点,它只能发现自己识别了的文件类型,对于它未识别的文件视而不见。例如刚开始.s文件就不认识,要在C源文件中加入*s文件,欺骗SI软件*.s也是C的源文件。2. 在要查看的代码同级目录下新建文件夹,用来存放工程目录 3. 创建新的工程4. 新建项目的命名和指定存储路径工程项目文件和工程中管理的源代码文件目录可以不同,建议放在...原创 2018-09-06 00:42:28 · 6898 阅读 · 0 评论 -
Ubuntu16.04 error while loading shared libraries: libstdc++.so.6解决方法
apt install lib32stdc++6-4.8-dbg原创 2018-09-02 23:17:26 · 8267 阅读 · 3 评论 -
编译错误: /bin/sh: 1: pushd: not
[转]编译错误: /bin/sh: 1: pushd: not found的问题http://blog.csdn.net/ojinxi/article/details/12186839ubuntu环境中报如下错误: 查看原因:进入/bin目录,查看sh的链接文件,显示如下:表示sh命令链接到的是dash,而pushd命令需要在bash的环境中执行。 解决方法:...转载 2018-09-02 23:14:17 · 423 阅读 · 0 评论 -
ubuntu16.04 64位安装32位海思交叉编译工具链
aptinstall lib32z1原创 2018-09-02 23:12:53 · 1293 阅读 · 0 评论