本文转载自:http://blog.csdn.net/fengyuwuzu0519/article/details/74177978 版权声明:本文为博主原创文章,转载请注明http://blog.csdn.net/fengyuwuzu0519.   目录(?)[+]   硬件平台:tiny4412 系统:linux-4.4 文件系统:busybox-1.25 编译器: arm-none-linux-gnueabi-gcc(gcc version 4.8.3 20140320) uboot:友善…
Linux dts 设备树详解(一) 基础知识 Linux dts 设备树详解(二) 动手编写设备树dts 文章目录 1 前言 2 概念 2.1 什么是设备树 dts(device tree)? 2.2 使用设备树的优势有哪些? 3 简介 3.1 dts 3.2 dtsi 3.3 dtc 3.4 dtb 4 基本框架 5 总结 参考 1 前言 关于设备树,之前就已经接触过许久了,但是本着够用的原则,基本上是哪里不会点哪里,现学现卖,没有再进行全面性的总结,导致很多知识点都是比较碎片状,没有形成一…
我们是在虚拟机上安装的Linux系统.在安装的过程中,可能会遇到磁盘分区的问题,我们下面简单介绍一下分区的原理. 1.硬盘的基础知识 下面是一块空白的硬盘: 这是一块格式化后的硬盘: 格式化就是,在空白空间中建立秩序.其他的格式(不同的文件系统): 存入磁盘的数据: 存数据并不是从头到尾按照顺序存数据,其实是向我们的哈希表一样,我们的数据存在哈希表的时候,会计算出一个哈希code值,再把这个数据放在哈希表的唯一的一个位置上(如果哈希code相同,就会把数据存成一个链表或者数组再放在唯一的一个位置…
最近搞到手了一部Angular4的视频教程,这几天正好有时间变学了一下,可以用来做一些前后端分离的网站,也可以直接去打包web app. 环境&版本信息声明 运行ng -v @angular/cli: 1.2.0 node: 8.1.2 os: win32 x64 @angular/* 4.2.5 ... 好吧,那就顺便写个笔记/教程/备忘/博客咯 安装Angular脚手架 安装的时候选择全局安装 npm install @angular/cli -g 创建Angular项目 运行命令 ng n…
数据结构与算法 1.算法 算法:是指解题方案的准确而完整的描述. 算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计. 算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止.特征包括:   (1)可行性: (2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性: (3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义: (4)拥有足够的情报. 算法的基本要素…
本文转载自:http://blog.csdn.net/fengyuwuzu0519/article/details/74160686 一.思路 上一节我们通过DNW将内核.文件系统.设备树文件烧入到内存中,并使用bootm启动内核:bootm0x40600000  0x41000000  0x42000000.因为此时内核并没有SD卡驱动,和EMMC驱动,我们只能直接将系统拷贝至内存中然后启动.当时我们进入文件系统后,并无法挂载外面的网络文件系统,对开发带来很多不便,所以这一节,我们移植网卡,让…
http://www.eefocus.com/marianna/blog/15-02/310352_46e8f.html 使用GPIO,当然可以自己编写驱动,比如之前的第34节,也可以使用Kernel中的platform方法,它对资源的管理更加方便.为了理解platform工作的过程,需要先来看看mainline里面的帮助文档: Documentation/driver-model/platform.txt====================================(头文件linux…
踏入linux运维工程师这一职业,其实有很多工具技能需要掌握,下面我来给大家一一介绍. 1.shell脚本和另一个脚本语言,shell是运维人员必须具备的,不懂这个连入职都不行,至少也要写出一些系统管理脚本,最简单也得写个监控CPU,内存比率的脚本,这是最基本的了,也是最有意义,而另一个脚本语言是可选的,一般是3P,即python, perl和php,php就不需要考虑了,除非你要做开发,我个人建议学python会比较好,难实现自动化运维,perl是文本处理很强大,反正这两个学一个就行了. 2.…
以下内容收集自网络,以作参考. 一.YUM是什么 YUM = Yellow dog Updater, Modified. 主要功能是更方便的添加/删除/更新RPM包. 它能自动解决包的倚赖性问题. 它能便于管理大量系统的更新问题. 二. YUM的特点 可以同时配置多个资源库(Repository). 简洁的配置文件(/etc/yum.conf,/etc/yum.repos.d 下的文件). 自动解决增加或删除rpm包时遇到的倚赖性问题. 使用方便. 保持与RPM数据库的一致性. 三. YUM安装…
回顾: 用户.用户组的概念: 每个文件和进程,都需要对应一个用户和用户组. linux系统通过UID和GID来识别用户和组的. 用户名相当于人名 UID和GID  身份证号 管理员:root   dongdaxia 用户和组的关系: 一对一,多对一,一对多,多对多. Linux系统用户分类: 超级用户:UID为0   代表是root,  皇帝 普通用户:UID范围500-65535,由超级用户或者具有超级用户权限的用户创建的用户(大臣,布衣) 虚拟用户:UID范围1-499,存在满足文件或者服务…
一.Linux多用户多任务介绍 Linux/Unix 是一个多用户.多任务的操作系统:在讲Linux账号及账号组管理之前,我们先简单了解多用户.多任务操作系统的基本概念. 1.1Linux单用户多任务  2)Linux系统中用户角色划分 超级用户: 默认是root用户,其UID和GID均为0.root用户在每台unix/linux操作系统中都是唯一真实存在的,通过它可以登录系统,可以操作系统中任何文件和命令.拥有最高的管理权限. 在生产环境中,一般会禁止root账号通过SSH远程连接服务器(保护…
1.bash中的算术运算 let运算符 [root@:vg_adn_tidbCkhsTest ~/tidb-bench/sysbench]#echo $i [root@:vg_adn_tidbCkhsTest ~/tidb-bench/sysbench]#let i3=$i1+$i2 [root@:vg_adn_tidbCkhsTest ~/tidb-bench/sysbench]#echo $i3 $[expression] [root@:vg_adn_tidbCkhsTest ~/tidb-…
关键字 数据类型: 简单(7):int long short float double char enum 复杂(2):struct union 类型修饰符(8):auto unsigned signed extern register static volatile void 定义(2): typedef const 其他(1): sizeof 数据类型示意图: 流程控制: 条件跳转(5): if else switch case default 循环(5): do while for con…
我的笔记里的python代码运行环境都是在pycharm软件中运行,所以不去记录如何配置环境变量呀什么的. python种类 Cpython: Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上. Jpython: Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行. IronPython:   Python的C#实现,IronPytho…
backbone为复杂Javascript应用程序提供MVC(Model View Controller)框架,框架里最基本的是Model(模型),它用来处理数据,对数据进行验证,完成后台数据与前台数据的交互(从前台提交到后台的数据,从后台获取数据传递到前台,都由Model负责). backbone有基本的Model对象Bacxbone.Model,可以通过extend进行扩展,每个模型都有一个唯一的标识符属性id,区分不同的模型, 下面创建一个扩展的模型 var RoomModel = new…
root               :x                  :0                  :0                  :root                  :/root                  :/bin/bash 账号名称       :账号密码  :账号UID     :账号组GID  :用户说明      :用户家目录      :shell解释器 小结论: 1.useradd添加用户会更改/etc/passwd./etc/shad…
安装目录:C:\Program Files\MongoDB\Server\3.2 Bin:..\..\Program Files\MongoDB\Server\3.2\bin 启动命令:mongod 链接命令:mongo  或者 mongo 主机:端口号/数据库 mongo -nodb 或者mongo XX.js 或者mongo --quiet 查看数据库:db 选择数据库:use foo  ==> db.getSister("foo")显示所有数据库:show dbs ==〉…
<Linux基础知识及命令>系列分享专栏 本专题详细为大家讲解了Linux入门基础知识,思路清晰,简单易懂.本专题非常适合刚刚学习Linux的小白来学习,通过学习该专题会让你由入门达到中级的水平. <Linux基础知识及命令>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/206292.html 文章 1_Linux基础知识及命令――――登陆登出及图形化界面的初始化 2_Linux基础知识及命令――――Linux的命令语法格式…
上一篇文章学习了字符设备的注册,操作过的小伙伴都知道上一篇文章中测试驱动时是通过手动创建设备节点的,现在开始学习怎么自动挂载设备节点和设备树信息的获取,这篇文章中的源码将会是我以后编写字符驱动的模板. 一.准备材料 开发环境:VMware 操作系统:ubuntu 开发版:湃兔i2S-6UB 库文件:linux开发板或ubuntu的内核源码 二.自动创建设备节点 需要用到的头文件 #include <linux/device.h>,需要用到的函数如下所示 struct class *class_…
驱动开发读书笔记. 0.04  linux 2.6 platform device register 平台设备注册  1/2 共2篇下面这段摘自 linux源码里面的文档 : Documentation/driver-model/platform.txt Device Enumeration 82 ~~~~~~~~~~~~~~~~~~ 83 As a rule, platform specific (and often board-specific) setup code will 84 reg…
1. ARM Device Tree起源 Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking pain in the ass”,引发ARM Linux社区的地震,随后ARM社区进行了一系列的重大修正.在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码,相当多数的代码只是在描述板级细节,而 这些板级细节对于内核来讲,不过是垃圾,…
前期知识   1. 如何编写一个简单的Linux驱动(一)--驱动的基本框架   2. 如何编写一个简单的Linux驱动(二)--设备操作集file_operations   3. 如何编写一个简单的Linux驱动(三)--完善设备驱动 前言   在前面的文章中,我们只介绍了如何对驱动和设备节点进行操作,并没有涉及到对具体硬件设备的操作.从本篇开始,将介绍对硬件设备的操作.这里,我们要引入一个新的概念--设备树.   在学习Linux驱动时,我们一般会用到ARM开发板.ARM开发板的厂商有很多,…
linux设备驱动程序--设备树多级子节点的转换 在上一章:设备树处理之--device_node转换成platform_device中,有提到在设备树的device_node到platform_device转换中,必须满足以下条件: 一般情况下,只对设备树中根的一级子节点进行转换,也就是多级子节点(子节点的子节点)并不处理.但是存在一种特殊情况,就是当某个根子节点的compatible属性为"simple-bus"."simple-mfd"."isa&q…
Xilinx zynq-7000系列FPGA移植Linux操作系统详细教程 一:前言 最近手上压了一块米联客的Miz7035,一块xilinx zynq-7000系列的开发板,想着正好学习一下linux在ARM9上的移植,网上基本都是ZC702.zed的教程,这对于买了非标准板的人来说就不太友好,很多文件都不知道是怎么生成的.本着学习加分享的心态,把这两天移植linux的过程写下来,尽可能详细.驱动和系统移植不是我的专长,很多地方我也是知其然不知其所以然,写得不对的地方欢迎指正. 二:前期准备 …
Linux操作系统概述 Q1.什么是GNU?Linux与GNU有什么关系? A: 1)GNU是GNU is Not Unix的递归缩写,是自由软件基金会(Free Software Foundation,FSF)的一个项目,该项目已经开发了许多高质量的编程工具,包括emacs编辑器.著名的GNU C和C++编译器(gcc和g++):2)Linux的开发使用了许多GNU工具,Linux系统上用于实现POSIX.2标准的工具几乎都是由GNU项目开发的:Linux内核.GNU工具以及其它一些自由软件组…
研究了很久,自始至终不能够从三者的区别和联系中找到一个大脑与这些概念之间合适的相处方式.对于基本概念和理论理解不到位,在工作之中会走很多弯路和犯很多错误.今天花一天的时间,终于对三者的区别和联系有了更进一步的理解,特此记录并分享之,供大家探讨交流. (一)磁盘分区 首先要明白的是磁盘为什么要分区. 一是从数据安全方面考虑,二是从系统访问磁盘的性能考虑.一个磁盘的某个分区损坏,不在该分区的数据将不会受到影响,这样就能够有效地保护不同业务的数据.过大的磁盘分区在系统进行读写的时候,会降低系统的读写性…
AM335x移植linux内核 该博客中详细介绍了移植linux内核到AM335x上相关,设备驱动采用设备树(DT)方式加载,包含设备启动.uboot.kernel.driver.rootfs及简单上层应用. 一些文档罗列如下: 1. 为AM335x移植Linux内核主线代码(4)booting-without-of.txt学习笔记上 2. 为AM335x移植Linux内核主线代码(6)booting-without-of.txt学习笔记下 3. 为AM335x移植Linux内核主线代码(13)…
USB 的全称是 Universal Serial Bus,顾名思义:通用串行总线. 提到总线,联想一下,在你心目中总线总是用来干嘛的?还记得 I2C 总线? I2C 总线上挂有二条信号线,一条是 SCL. SDA,这二货是干嘛滴?传输数据!对,就是用来传输数据的.换句话说,就是用来通信的. 既然是用来通信的,那自然就要用通信协议来规范通信. 在 USB 的世界里有一种协议叫 USB 协议, 这协议太复杂了,一时半载的难以消化,这里我们并不深入 USB 协议. 10.1 USB 总线简介 USB…
Linux基础知识学习 原文:http://blog.csdn.net/ye_wei_yang/article/details/52777499 一.Linux的磁盘分区及目录 Linux的配置是通过修改配置文件来完成. 1.1.Linux磁盘分区 Linux可以将磁盘分为多个分区,每个分区可以被当做一个独立的磁盘使用,磁盘类型:主分区.扩展分区.逻辑分区. 主分区标记为活动,用于操作系统的引导,一块磁盘最多划分4个主分区,主分区存放操作系统的文件或用户数据. 扩展分区:主分区小于4个时才可以划…
三.搭建petalinux工程 0.定位目录    先在shell中找一个准备存放工程的地方,(我的是home/hlf/PRO),命令行cd home/hlf/PRO 1.定位编译链    根据安装petalinux的路径:    source /home/hlf/mnt/petalinux/settings.sh 2.创建petalinux工程    将在PRO目录下面,创建一个工程:    petalinux-create --type project --template zynq --n…