自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一口Linux的专栏

专注linux知识的分享

  • 博客(36)
  • 资源 (9)
  • 收藏
  • 关注

原创 多线程编程?聊聊并发的背后知识

一、现代计算机理论模型与工作方式现代计算机模型是基于-冯诺依曼计算机模型。计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存储器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去。接下来,再取出第二条指令,在控制器的指挥下完成规定操作。依此进行下去,直至遇到停止指令。程序与数据一样存储,按程序编排的顺序,一步一步地取出指令,自动地完成指令规定的操作是计算机最基本的工作模型。这一原理最初是由美籍匈牙利数学家冯.诺依曼于1945年提出来的,故称为冯.诺依

2021-07-29 22:48:44 716 2

原创 linux服务器编程之网络连接断掉之后,究竟会发生什么···

连接正常结束:四次挥手,好好告别1)序号(sequence number):Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。2)确认号(acknowledgement number):Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。3)标志位(Flags):共6个,即URG、ACK、PSH、RST、SYN、FIN。具体含义如下:ACK:确认序号有效。RST:重置连接。SYN:发起一个新连接。FIN

2021-07-29 22:47:02 487

原创 屏下指纹介绍

一、光学指纹问题现状光学指纹当前随着成本的下降,各大厂商都在低中高端旗舰用上了光学指纹。有别于传统的电容指纹,光学指纹在解锁性能上目前都进行了优化,性能接近电容指纹。二、光学指纹电容指纹原理两者原理都是对指纹的纹路脊谷进行信号采集,通过记录不同信号,实现指纹的录入比对。电容式指纹模块是利用指纹与导电的皮下电解液形成电场,手指纹路的高低起伏会导致二者之间的压差出现不同的变化,因此可实现准确的指纹数据扫描。这种指纹识别方式比较通用,对环境要求比较弱,只要有指纹就能录入识别,更重要的是这种

2021-07-29 22:08:35 1709

原创 zRAM内存压缩技术原理与应用

1. 技术背景说到压缩这个词,我们并不陌生,应该都能想到是降低占用空间,使同样的空间可以存放更多的东西,类似于我们平时常用的文件压缩,内存压缩同样也是为了节省内存。尽管当前android手机6GB,8GB甚至12GB的机器都较为常见了,但内存无论多大,总是会有不够用的时候。当系统内存紧张的时候,会将文件页丢弃或回写回磁盘(如果是脏页),还可能会触发LMK杀进程进行内存回收。这些被回收的内存如果再次使用都需要重新从磁盘读取,而这个过程涉及到较多的IO操作。就目前的技术而言,IO的速度远远慢于这RAM操

2021-07-26 22:59:18 5879

原创 内存泄漏一网打尽

青囊,喜欢运动T恤加皮裤的非典型程序猿。此时,他正目不转睛注视着屏幕上一行行的代码,内存泄漏这个问题已经让他茶饭不思两三天了,任凭偌大的雨滴捶打着窗户也无动于衷。就这么静悄悄地过了一会儿,突然间,他哼着熟悉的小曲,仿佛一切来的又那么轻松又惬意。是谁,在撩动我琴弦,那一段被遗忘的时光......初识内存泄漏小白的练级之路少不了前辈们的语重心长。从踏上linux内核之路开始,专家们就对青囊说——“遇到困难要学会独立思考”、“最好的学习方式就是带着问题看代码”等等。可这次遇到的问题,让青囊百思不得其解

2021-07-26 22:58:42 1201 2

原创 无线充电技术简介

一、引言无线充电技术最早出现于19世纪末,当时的物理学家Nikola Tesla演示了磁共振耦合——在两个电路(一个发射器一个接收器)之间建立磁场,通过空气来传输电能。但在之后的大约100年时间里,这项技术并没有得到多少实际应用。直到近年来智能终端设备的广泛应用,尤其是智能手机的普及,才让无线充电技术得以重新发展和推广。二、基本原理1. 技术概览目前,无线充电的方式主要有四种类型:通过电磁感应的磁耦合方式,通过电磁波近场谐振的磁共振方式,通过电场进行能量传输的电场耦合方式,以及通过电

2021-07-26 22:58:03 7062 2

原创 power supply是如何上报电池信息的

一、引文作为一个内核初学者,经常容易进入“知其然但不知其所以然”的状态,在power supply子系统中就是这样,知道如何去添加一个属性prop,知道psy可以创建一堆文件节点,也知道上层是通过读取这些节点来获取供电信息的,但对于其中的细节,便知之甚少。最近深究其中,才逐步发现内核的奥妙所在。二、Android供电系统框架power supply(以下简称psy)是Linux中从供电驱动抽象出来的子系统,是Linux电源管理的重要组成部分。psy是一个中间层,在kernel中是属于设备

2021-07-26 22:57:10 1994

原创 我的手机灭屏了,为什么还在耗电

读者可能会有这种体会和感受,昨晚的睡眠时间和平时相当,但是为何早上起来特别困,如下来自健康手环的睡眠监测数据或许可以给你答案。可知整个夜间睡眠时间段,睡眠质量通过深睡、浅睡、清醒三种等级来表征,你记忆中的夜间睡眠,实际情况可能是翻来覆去整个人都处于清醒的状态,这种情况越多,睡眠质量也就越差。该监测数据,可为作息规划与改善提供数据支撑。对于手机而言,灭屏状态下的表现其实与人的睡眠大体类似,当系统处于深度睡眠模式时,功耗会低很多;相反,当系统处于唤醒状态时,功耗会大很多,此时手机自然也就耗电快。

2021-07-26 22:56:37 2029 1

原创 Linux内核Page Cache和Buffer Cache关系及演化历史

在我们进行数据持久化,对文件内容进行落盘处理时,我们时常会使用fsync操作,该操作会将文件关联的脏页(dirty page)数据(实际文件内容及元数据信息)一同写回磁盘。这里提到的脏页(dirty page)即为页缓存(page cache)。块缓存(buffer cache),则是内核为了加速对底层存储介质的访问速度,而构建的一层缓存。他缓存部分磁盘数据,当有磁盘读取请求时,会首先查看块缓存中是否有对应的数据,如果有的话,则直接将对应数据返回,从而减少对磁盘的访问。两层缓存各有自己的缓存目标,我

2021-07-26 22:55:48 299

原创 谈一谈Linux让实时/高性能任务独占CPU的事

本文主要讨论在高实时要求、高效能计算、DPDK等领域,Linux如何让某一个线程排他性独占CPU;独占CPU涉及的线程、中断隔离原理;以及如何在排他性独占的情况下,甚至让系统的timer tick也不打断独占任务,从而实现最低的延迟抖动。阅读本文大约需要20分钟。本文目录:工程需求 用户态隔离 内核态隔离 3.1 中断 3.2 内核线程 最佳实践指南1. 工程需求在一个SMP或者NUMA系统中,CPU的数量大于1。在工程中,我们有时候有一种需求,就是让某个能够独占CPU,这个CPU什

2021-07-26 22:54:09 1144

原创 理解inode

一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的.

2021-07-26 22:53:26 1770

原创 OpenHarmony编译构建系统详解,从零搭建windows下开发环境,巨方便!

自从OpenHarmony更新了dev-tool,就可以在windows下构建鸿蒙(轻量型)系统了,这对于进行MCU开发的朋友们,学习鸿蒙OS会友好许多!我们可以更快的构建出系统,方便快速学习和验证。不过关于这个开发环境搭建的文章,网上比较少,而且坑也很多。所以这篇文章,我就带大家从零完成dev-tool的环境搭建,帮大家降低学习OpenHarmony的学习成本!我们先讲一下OpenHarmony的编译构建框架,当大家理解了这个框架后,再学习环境的搭建和工程开发,心里会有底气许多。一、穿针引线-编译构建

2021-07-26 21:25:16 4709 1

原创 万字整理,C语言最全入门笔记!

C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世界的必修课。hello,world#include<stdio.h>intmain(){/*在双引号中间输入HelloWorld*/printf("HelloWorld");return0;}注:在最新...

2021-07-25 10:14:38 488

原创 CAN总线的前世今生

CAN总线35周年之际,花了一晚上时间整理翻译了下,通过这个帖子大家会对当前市场上各种CAN名词有的全面系统的认识. 1986年2月,Robert Bosch GmbH在汽车工程师协会(SAE)大会上推出了控制器局域网(CAN)串行总线系统。这是有史以来最成功的网络协议之一诞生的时刻。如今,欧洲几乎所有汽车都配备了至少一个CAN网络。CAN还用于其他类型的车辆,从火车到轮船,以及工业控制中,CAN是最主要的总线协议之一,甚至可能是全球领先的串行总线系统。从构思到第一个芯片 ...

2021-07-25 10:12:29 1121

原创 posix是什么都不知道,还好意思说你懂Linux?

什么是posix?为什么它很重要?

2021-07-24 11:50:50 1950

原创 从0学Linux驱动第一期视频已经录制完毕,资料全部奉送

历时4个多月,第一期Linux驱动视频录制完毕,一共32期,现在全部同步到了B站。如果你觉得视频对你有用,建议大家多多点赞,投投免费硬币,算是对我辛苦的劳动的认可。视频中ppt、代码、ubuntu环境请扫描下面二维码,回复:ubuntu,即可获得一、楔子第一次发布教学视频,走了些弯路,也有很多不足,有很多收获。录制视频之后才发现,这个事情实在太耗费精力了,除了要构思讲课内容、制作PPT、还要编写测试程序验证知识点,视频中代码都是我一个字母一个字母敲出来的,有的代码我还在视频中现场

2021-07-19 22:59:07 1023 7

原创 Linux面试最高频的5个基本问题

CPU利用率和CPU负载的区别是什么提到CPU利用率,就必须理解时间片。什么是CPU时间片?我们现在所使用的Windows、Linux、Mac OS都是“多任务操作系统”,就是说他们可以“同时”运行多个程序,比如一边打开Chrome浏览器浏览网页还能一边听音乐。但是,实际上一个CPU内核在同一时刻只能干一件事,那操作系统是如何实现“多任务”的呢?大概的方法是让多个进程轮流使用CPU一小段时间,由于这个“一小段时间”很短(在linux上为5ms-800ms之间),用户感觉不到,就好像是几个程序同时在运

2021-07-13 22:02:00 355

原创 什么是内存泄漏?该如何检测?又该如何解决?

前言这个问题是我之前翻看面经的时候见到的。那位小姐姐把内存泄漏当成了内存溢出问题去解答的,结果当场挂掉了。为此总结一下,之前和一位老哥也讨论过这个问题。可见不管是面试还是工作这都是一个极为重要的点。我也曾在面阿里的时候也遇到过原题,题目是写出俩内存泄漏案例,然后问如何排查?如何解决?本篇文章大体结构来自外国大佬baeldung;一、介绍1、什么是内存泄漏java的优势之一就是内置了垃圾回收器GC,它帮助我们实现了自动化内存管理。但是GC再好,也有老马失前蹄的时候,它不能保证提供一个解

2021-07-13 21:22:40 1530 5

原创 一网打尽TCP、IP面试那些问题

网络分层网络的分层大致如图所示,发送端每层通过加自己的包头,服务端每层拆包。假设应用层是http协议传输数据 经过传输层,传输层的作用一般就是确定端口,加上TCP信息的包头 经过IP层,IP层就是确定对端的IP地址的,加上IP信息的包头 经过网络接口层,加上mac地址相关信息的包头 通过mac地址找到接收端,拆除以太网头 解析IP报文,找到对应的IP的接收方,拆除IP头 解析TCP报文,找到对应的服务(例如qq是80端口,微信是81端口),拆除TCP头 服务已找到,通过一开始的

2021-07-13 21:21:14 662 7

原创 Linux内核信号SIGIO使用实例讲解

一、信号1. 基本概念信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。例如键盘输入中断按键(^C),它的发生在程序执行过程中是不可预测的。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了。硬件异常也能产生信号,例如被零除、无效内存引用(test里产生的就是这种错误)等。这些条件通常先由内核硬件

2021-07-11 22:45:56 5044

原创 想入手显示器,恳请粉丝带我推荐,必有重谢!

坏了一个显示器本来家里好好的两个显示器,其中1个有点雪花亮线。当时特地买的EIZO,考虑已无维修价值,打算换一个显示器。但是某宝搜了一圈,已经被各种参数和品牌搞晕掉:2K、4K、准4K、IPS、60hz、144HZ、高刷、曲面屏、带鱼屏、宽屏,32寸,34寸我的需求说下我的大致需求:平时主要编写文档B站直播,会带宝宝一起看一些经典的电视剧偶尔会玩游戏屏幕尽量大一些预算1500-2500【省点钱给宝宝报培训班】家中另外一个显示器是27寸的,华硕MX279,只有1080P。欢迎

2021-07-10 23:31:20 918 4

原创 50个应知必会的Linux常识和操作

1.存放用户账号的文件在哪里?/etc/passwd2.如何删除一个非空的目录?rm -rf 目录名3.查看当前的工作目录用什么命令?pwd4.创建一个文件夹用什么命令?mkdir5.哪个Linux命令可以一次显示一页内容?上一页和下一页使用什么命令?moreSpace键:显示文本的下一屏内容,B键:显示上一屏内容6.显示一个文件的最后10行用什么命令tailtail -n 10 文件名7.如何回到当前用户的家目录?cd ~8.如何统计一个文件

2021-07-10 21:25:52 659

原创 彻底搞懂程序链接过程之动态链接

通过静态链接,可以生成一个可执行文件,这个可执行文件既可以是完全链接的也可以是部分链接的,对于部分链接的可执行文件,有些符号引用需要等到可执行文件加载时甚至是运行时才会进行符号解析和重定位。动态链接与静态链接一样包括符号解析和重定位两个任务,静态链接和动态链接的区别之一就是符号解析和重定位的时机,动态链接分为加载时动态链接和运行时动态链接,本篇文章将拆分成3个部分阐述:1.可执行文件的结构和加载过程。2.加载时动态链接。3.运行时动态链接。可执行文件的结构和加载过程可执行文件的结构

2021-07-09 20:29:29 6164 1

原创 常用正则表达式最强整理(速查手册)

一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$..

2021-07-06 21:45:12 268

原创 为什么自己干了这么多活,最后功劳都是别人的?

一、粉丝留言自己每天加班到10点,有时候都到凌晨,周6基本全勤,公司项目忙的时候周日还去加班,做过的项目无数,很多项目都给公司带来了丰厚的利润。年底年终奖比别人少了一个月,优秀员工也没了(1w的奖金)。找领导沟通,因为春节前宝宝生病请了一周假。而评为优秀员工的同事表现真的很一般。愤而离职,这个时候领导才发现我手里居然这么多项目,前前后后挽留了很多天,并且承诺加工资,项目随便选,并且半年必提领导岗。心凉了,真的很难暖过来!二、为什么默默付出总是没有回报?这个问题,真的很像一个舔狗,被踹了后,

2021-07-04 23:10:13 789 3

原创 Linux:查找进程使用的所有文件描述符

如何找到httpd(Apache web服务器)或mysqld(MySQL数据库服务器)等进程使用的所有文件描述符?您可以使用/proc文件系统或lsof命令来查找进程使用的所有文件描述符。/proc文件系统示例首先,使用ps命令找出进程ID,输入:# ps aux | grep processName# ps aux | grep mysqld示例输出:root 3632 0.0 0.0 65944 1296 ? S Jun05 0:

2021-07-04 10:20:40 4011 2

原创 那些你不知道的 TCP 冷门知识

最近在做数据库相关的事情,碰到了很多TCP相关的问题,新的场景新的挑战,有很多之前并没有掌握透彻的点,大大开了一把眼界,选了几个案例分享一下。案例一:TCP中并不是所有的RST都有效背景知识:在TCP协议中,包含RST标识位的包,用来异常的关闭连接。在TCP的设计中它是不可或缺的,发送RST段关闭连接时,不必等缓冲区的数据都发送出去,直接丢弃缓冲区中的数据。而接收端收到RST段后,也不必发送ACK来确认。问题现象:某客户连接数据库经常出现连接中断,但是经过反复排查,后端数据库实例排查没有执行异常

2021-07-04 10:18:59 591 3

原创 精华总结:10个问题理解 Linux epoll

epoll 是 linux 特有的一个 I/O 事件通知机制。很久以来对 epoll 如何能够高效处理数以百万记的文件描述符很有兴趣。近期学习、研究了 epoll 源码,在这个过程中关于 epoll 数据结构和作者的实现思路产生出不少疑惑,在此总结为了 10 个问题并逐个加以解答和分析。 本文基于的内核源码版本是2.6.39 版本。Question 1: 是否所有的文件类型都可以被 epoll 监视?答案:不是。 看下面这个实验代码:#include <stdio.h>#inc.

2021-07-04 10:14:29 775

原创 从TCP/IP协议谈Linux内核参数优化(值得收藏)

在硬件资源有限的情况下,最大的压榨服务器性能,提高服务器的并发处理能力,是很多技术人员思考的问题,除了优化Nginx/PHP-FPM/Mysql/Redis这类服务软件配置外,还可以通过修改Linux的内核相关TCP参数,来最大的提高服务器性能。在Linux内核参数优化之前,我们需要先搞懂TCP/IP协议,这是我们实施优化的理论依据。TCP/IP协议TCP/IP协议是十分复杂的协议,完全掌握不是一件容易的事情,但作为基本知识,我们必须知道TCP/IP协的三次握手和四次挥手的逻辑过程。三次握手

2021-07-04 10:13:35 361

原创 Linux网络协议栈之套接字缓冲区

Linux网络协议栈是内核中最大的组件之一,由于网络部分应用的范围很广,也相对较热,该部分现有的资料很多,学起来也比较容易。首先,我们看看贯穿网络协议栈各层的一个最关键数据结构——套接字缓冲区(sk_buff结构)。一个封包就存储在这个数据结构中。所有网络分层都会使用这个结构来存储其报头、有关数据的信息,以及用来协调工作的其他内部信息。在内核的进化历程中,这个结构经历多次变动,本文及后面的文章都是基于2.6.20版本,在2.6.32中该结构又变化了很多。该结构字段可粗略划分为集中类型:布局、通用、专用、

2021-07-04 10:12:51 711 3

原创 内存管理:虚拟地址空间布局

内存管理子系统的架构如图3.1所示,分为用户空间、内核空间和硬件3个层面。图3.1 内存管理架构1.用户空间应用程序使用malloc()申请内存,使用free()释放内存。malloc()和free()是glibc库的内存分配器ptmalloc提供的接口,ptmalloc使用系统调用brk或mmap向内核以页为单位申请内存,然后划分成小内存块分配给应用程序。用户空间的内存分配器,除了glibc库的ptmalloc,还有谷歌公司的tcmalloc和FreeBSD的jemalloc。

2021-07-04 10:12:02 700 2

原创 「Linux」多线程详解,一篇文章彻底搞懂多线程中各个难点

1.什么是线程?linux内核中是没有线程这个概念的,而是轻量级进程的概念:LWP。一般我们所说的线程概念是C库当中的概念。1.1线程是怎样描述的?线程实际上也是一个task_struct,工作线程拷贝主线程的task_struct,然后共用主线程的mm_struct。线程ID是在用task_struct中pid描述的,而task_struct中tgid是线程组ID,表示线程属于该线程组,对于主线程而言,其pid和tgid是相同的,我们一般看到的进程ID就是tgid。即:获取线程

2021-07-04 10:11:06 542 3

原创 linux后台开发中避免僵尸进程的方法总结

一、什么是僵死进程?一般情况下,程序调用exit(包括_exit和_Exit,它们的区别这里不做解释),它的绝大多数内存和相关的资源已经被内核释放掉,但是在进程表中这个进程项(entry)还保留着(进程ID,退出状态,占用的资源等等),你可能会问,为什么这么麻烦,直接释放完资源不就行了吗?这是因为有时它的父进程想了解它的退出状态。在子进程退出但还未被其父进程“收尸”之前,该子进程就是僵死进程,或者僵尸进程。如果父进程先于子进程去世,那么子进程将被init进程收养,这个时候init就是这个子进程的父进程。

2021-07-02 23:12:53 366

原创 Linux下简单几步安装AI开发环境-ROS(超有意思)

1. 安装ROS Kinetic 只 支持Wily (Ubuntu 15.10), Xenial (Ubuntu 16.04) 和Jessie (Debian 8) 的debian包。1.1 配置Ubuntu软件仓库配置你的Ubuntu软件仓库(repositories)以允许使用“restricted”“universe”和“multiverse”存储库。你可以根据Ubuntu软件仓库指南来完成这项工作。1.2 设置sources.list设置电脑以安装来自packages.ros.org的软件

2021-07-01 22:31:03 836 5

原创 epoll详解

在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序。在大数据、高并发、集群等一些名词唱得火热之年代,select和poll的用武之地越来越有限,风头已经被epoll占尽。本文便来介绍epoll的实现机制,并附带讲解一下select和poll。通过对比其不同的实现机制,真正理解为何epoll能实现高并发。select()和poll() IO多路复用模型select的缺点:单个进程能够监视的文件描述符的数量存在最大限制,

2021-07-01 22:06:36 448

原创 linux入门--磁盘管理之分区、格式化与挂载

前面系列文章讲解了VI编辑器、常用命令、防火墙及网络服务管理,本篇将讲解磁盘管理相关知识。本文将会介绍大量的Linux命令,其中有一部分在“linux入门系列5--新手必会的linux命令”一文中已经介绍,遗忘了或没学习过的请自行查看。磁盘管理主要涉及磁盘扩容以及磁盘配额管理,当服务器磁盘空间达到一定程度(个人认为一般使用量占到总容量的70-80%)就需要考虑新加磁盘实现扩容,一般操作步骤为分区、格式化、挂载、验证及使用。而磁盘配额主要是针对用户设置其最大的磁盘空间使用量,防止当个用户占用磁盘过多的

2021-07-01 22:06:02 1595 3

S3C2440全套中文手册.PDF

S3C2440A32位CMOS RISC微控制器用户手册 引言此用户手册描述的是三星公司的16/32位精简指令集(RISC)微处理器S3C2440A。三星公司的S3C2440A为手持设备和普通应用提供了低功耗和高性能的小型芯片微控制器的解决方案。为了降低整体系统成本,S3C2440A还提供了以下丰富的内部设备。S3C2440A基于ARM920T核心,0.13μm的CMOS标准宏单元和存储器单元。低功耗,简单,精致,且全静态设计特别适合于对成本和功率敏感型的应用。它采用了新的总线架构如先进微控制总线构架(AMBA)。S3C2440A 的突出特点是其处理器核心,是一个由Advanced RISC

2020-10-24

mdk414.rar

作者讲解ARM课程专用的IDE软件 mdk414.rar 学习ARM指令用的IDE环境 AREA Example,CODE,READONLY ;声明代码段Example ENTRY ;程序入口 Start ; 程序中的标号,本质上是内存单元(的地址)的别名 MOV R0,#0 ;设置实参,将传递给子程序的实参存放在r0和r1内 MOV R1,#10 BL ADD_SUM ;调用子程序ADD_SUM B OVER

2020-10-23

imx6ull arm板子支持lcd显示图片

lcd_show_jpeg.c test.c lcd.c HZK16 libjpeg.a jpegsrc.v6b.tar.gz

2020-10-04

移植无线AP,使无线网卡变成AP

移植之后就可以实现将无线网卡变成一个无线AP, 素有的压缩包,都已经汇总了,并验证过 dnsmasq-2.81.tar.xz hostapd-2.0.tar.gz iwlist.zip libnl-1.1.4.tar openssl-OpenSSL_1_0_0s.tar.gz

2020-09-18

MPU6050-英文原版数据手册.pdf

MPU6050-英文原版数据手册, CONTENTS 1 REVISION HISTORY ...................................................................................................................................5 2 PURPOSE AND SCOPE .....................................................................................................

2020-08-23

公众号一口Linux驱动部分源码汇总.rar

代码是公众号一口Linux 文章驱动部分所有势力代码,文章如下: 《玩转内核链表list_head,如何管理不同类型节点的实现(万字文)可以收藏》 《I2C干货-基于Cortex-A9(重新整理)》 《一文搞懂ADC裸机和基于Linux驱动编写方法》 《手把手教Linux驱动4-进程、文件描述符、file、inode关系详解》 《 手把手教Linux驱动3-之字符设备架构详解,有这篇就够了 》 《手把手教Linux驱动2-模块参数param和符号导出export用法》 《手把手教Linux驱动1-模块化编程》

2020-08-23

linux局域网多线程聊天室

linux c语言 聊天室 多线程 pthread

2013-10-09

ZIGBEE配置与组网

ZIGBEE配置与组网,如何搭建一个zigbee网络!

2013-05-02

zigbee网络建立过程

星形网络和树型网络可以看成是网状网络的一个特殊子集,所以接下来分析如何组建一个Zigbee网状网络。组建一个完整的Zigbee网络分为两步:第一步是协调器初始化一个网络;第二步是路由器或终端加入网络。加入网络又有两种方法,一种是子设备通过使用MAC层的连接进程加入网络,另一种是子设备通过与一个先前指定的父设备直接加入网络。

2013-05-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除