linux学习
༺༒至尊宝༒༻
这个作者很懒,什么都没留下…
展开
-
rk3288模拟可调占空比pwm波形
一、内核为高精度定时器重新设计了一套软件架构,它可以为我们提供纳秒级的定时精度,以满足对精确时间有迫切需求的应用程序或内核驱动,以下学习使用hrtimer(high resolution timer)高精度定时器。二、hrtimer_init函数初始化定时器工作模式。which_clock可以是CLOCK_REALTIME、CLOCK_MONOTONIC、CLOCK_BOOTTIME中的一种,mode则可以是相对时间HRTIMER_MODE_REL,也可以是绝对时间HRTIMER_MODE_ABS。vo原创 2020-05-12 17:01:56 · 729 阅读 · 0 评论 -
linux启动过程
Linux启动过程对于初学者而言有点扑朔迷离,这是因为启动过程关乎处理器配置、内存配置、外 围硬件配置,而不同的处理器和硬件系统会釆用不同的策略,从而具体的启动过程会有所差异。但无论差异如何,从计算机系统的角度来看,启动过程一般分为三个步骤,如 图 1-1所示。图 1 - 1 通用系统的启动过程首先是开机,开机就是给系统开始供电,此时硬件电路会产生一个确定的复位时序,保 证 CPU是...原创 2019-10-22 13:52:04 · 166 阅读 · 0 评论 -
Linux 查找find,grep,cat,echo等命令
Linux中的命令非常多,本节仅介绍一些在开发Android过程中常用的Linux命令。• manm an的含义是 m anual,即手册。当我们不清楚某个Linux命令的作用和用法时,可 以 使 用 mancommand进行查询,command为具体的命令名称,比如man Is。• findfind命令用于查找某个文件或者文件夹,比如:$ find . -name" *.java"...原创 2019-10-22 13:43:28 · 1028 阅读 · 0 评论 -
linux C语言Json封装数据
目的:java app Tcp客户端发送数据给Linux C 服务器数据解析验证环境:首先安装json安装包链接链接:https://pan.baidu.com/s/1BDc2JldxTEmmcxwdqesvTw提取码:54jgsudo cp tar xvf json-c-0.9.tar.gz /usr/localcd /usr/localsudo tar -xvf tar xv...原创 2019-07-05 17:46:24 · 1139 阅读 · 0 评论 -
Sqlite3数据库学习笔记
一、Sqlite3数据库:第三方库1、数据库:按照数据结构来组织、存储和管理数据的仓库。2、如何存储数据? .db3、管理数据有哪些操作? 增删改查4、数据库下载:移植第三方库下载数据库;把数据库搞到ubuntu上;sudo cp sqlite-autoconf-3240000.tar.gz /usr/local;sudo tar -xvf sqlite-autoconf-...原创 2019-07-05 15:42:09 · 2060 阅读 · 0 评论 -
linux app调用 jni 加载 led驱动点亮led等
1.app部分编写代码流程jni : java native interface java代码调用jni的方式:1, 加载jni的动态库 static{ System.loadLibrary("led_jni"); // /system/lib/libled_jni.so }2, 声明本地native方法 public native int openDev(); public...原创 2019-07-10 21:27:37 · 288 阅读 · 0 评论 -
linux windows adb加载驱动调试教程
基础:电脑已经usb链接平板成功1>找到JDK,adb.exe路径D:\HUAQING\LinuxDriv\java_android_env\sdk\platform-tools配置adb环境变量我的电脑->右键->属性->高级->环境变量->系统变量->Path:添加以上的路径进去。2>Windows下win+R,输入cmd,回车打开cm...原创 2019-07-10 20:16:28 · 446 阅读 · 0 评论 -
Android源码编译make的各类错误解决方案汇总
转载:http://www.voidcn.com/article/p-rjboindv-qx.html问题:You are attempting to build with the incorrect version of java.Your version is: java version “1.6.0_22”.The correct version is: Java SE 1.6.查...转载 2019-07-10 13:23:27 · 2798 阅读 · 0 评论 -
Linux下的tar命令和gzip命令的区别与联系
一、windows下最常见的压缩文件有两种:* .zip 和 * .rap 而Linux下却有很多,让人混淆:* .tar 、* .tar.gz 、* .tgz 、* .gz 、* .Z 、* .bz2二、基础概念打包:将一堆文件或目录什么的变成一个总的文件。压缩:将一个大的文件经过某种压缩算法变成一个小文件。为什么要区分这两个概念呢?因为Linux中的很多压缩程序只...转载 2019-07-09 10:03:50 · 707 阅读 · 0 评论 -
linux底层驱动生成*.ko Makefile代码解析
CROSS_COMPILE = arm-none-linux-gnueabi-CC = $(CROSS_COMPILE)gcc#指定内核源码路径#KERNEL_DIR =/home/farsight/1903/linux-3.0.8KERNEL_DIR = /home/farsight/s5pv210/kernel/linux-3.0.8#指定模块程序的路径CUR_DIR = $(sh...原创 2019-07-08 18:50:31 · 736 阅读 · 0 评论 -
linux probe和match方法何时被调用(简略版)
基于linux3.0.8内核,s5pv210 芯片,source insight软件,struct bus_type my_bus = { .name = "mybus", // /sys/bus/mybus/ .match = my_bus_match,}; struct my_driver mydrv = { .drv_id = 9, .probe = mydr...原创 2019-06-17 21:16:18 · 526 阅读 · 0 评论 -
linux输入子系统驱动按键程序示例代码
输入子系统驱动程序:input_sys_key_drv.c#include <linux/init.h>#include <linux/module.h>#include <linux/input.h>#include <linux/interrupt.h>//中断用的#include <linux/gpio.h> //gpi...原创 2019-06-17 16:00:10 · 251 阅读 · 0 评论 -
ARM板子挂载文件系统方式使用内核镜像
sudo vi /etc/network/interfacessudo /etc/inid.d/networking restartifconfig\192.168.7.7\tftpboot\zImage308\192.168.7.7\opt\rootfs_fs210.tgz\192.168.7.7\opt\toolchain-4.5.1-farsight.tar.bz2=======...原创 2019-06-04 13:17:14 · 765 阅读 · 0 评论 -
LINUX设备驱动模型之PLATFORM(平台)总线详解
//内核版本:2.6.35.7运行平台:三星s5pv210//1、什么是platform(平台)总线?相对于USB、PCI、I2C、SPI等物理总线来说,platform总线是一种虚拟、抽象出来的总线,实际中并不存在这样的总线。那为什么需要platform总线呢?其实是Linux设备驱动模型为了保持设备驱动的统一性而虚拟出来的总线。因为对于usb设备、i2c设备、pci设备、spi设...原创 2019-06-12 20:29:57 · 725 阅读 · 0 评论 -
Ubuntu 阿里源/网易163下载源
sudo cp /etc/apt/source.list /etc/apt/source.list.bak # 将原有的源文件复制保存sudo gedit /etc/apt/source.list # 打开源文件#阿里源将下列的复制到文件中deb http://mirrors.aliyun.com/ubuntu/ v...原创 2019-07-06 23:02:41 · 240 阅读 · 0 评论 -
make menuconfig配置内核时,*、M 、空格,这3个选项分别表示什么意思
在menuconfig中选择m和 *的区别:*: 模块驱动编译到内核中,启动时自动加载M:标识作为内核模块编译空格:表示该功能不编译到内核中,即新的内核将不支持该功能。m:模块会被编译,但是不会被编译到内核中,只是生成.o文件,我们可以收集这些.o文件做到linux的文件系统中,然后用insmod实现动态加载。模块加载的两种方式1)、动态加载动态加载是将驱动模块加载到内核中,而不能放...转载 2019-07-24 15:42:10 · 9179 阅读 · 0 评论 -
OpenGrok使用教程之配置多工程项目(下)
1.下载apache-tomcat-8.5.37.tar.gz和opengrok-0.12.1.6.tar.gz,链接:https://pan.baidu.com/s/13TUAyEFDawn3mVkQOHBjwQ提取码:t5yt链接:https://pan.baidu.com/s/1qq-iWYd532_JnLgYrfapQQ提取码:1j1l建立一个openGrok目录备用。安装 c...原创 2019-09-27 16:09:02 · 1113 阅读 · 0 评论 -
opengrok使用教程之单工程(上)
OpenGrok简介有些情况下,我们需要在GB级别甚至几十GB级别且随时不断更新的大型代码(比如Android源码)里面搜索阅读源码,那么我们自然而然会有以下一些基本的需求:能够快速搜索代码代码可存放于本地/服务器代码之间可以跳转跨平台易于维护…显然SourceInsight、ctags、grep等工具在这些场景下就不太适合,于是有了OpenGrok这类代码搜索引擎。先看看维...转载 2019-09-27 16:04:11 · 637 阅读 · 0 评论 -
rk3288 mipi 调试步骤
https://blog.csdn.net/dearsq/article/details/52354593(参考:CSDN博客)https://www.2cto.com/kf/201708/670726.html(参考:CSDN博客)https://www.cnblogs.com/lialong1st/p/9952077.html(参考:CSDN博客)// lcd-xxx-mipi.dtsi...原创 2019-09-21 15:36:44 · 4423 阅读 · 0 评论 -
linux下的source命令(.命令)解释及应用
用法:source filename # filename必须是可执行的脚本文件或者. filename # 注意“.”号后面还有一个空格功能:通知当前shell读入路径为filename的文件并依次执行文件中的所有语句。通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。例如,当我们修改了/etc/profile文件,并想让它立刻生效,...转载 2019-08-28 11:26:07 · 186 阅读 · 0 评论 -
Linux设备树解析
转载https://blog.csdn.net/smcdef/article/details/77387975Device Tree简介Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a fucking pain in the ass”,引发ARM Linux社区的地震,随后ARM社区进行了一系列的重大修...转载 2019-08-01 20:56:59 · 148 阅读 · 0 评论 -
Linux应用与网络面试题
linux目录结构linux常用命令vi的3种工作模式:命令行模式、插入模式和底行模式嵌入式系统:以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。ARM的7种处理器模式:用户模式、快速中断模式、外部中断模式、管理模式、数据访问终止模式、系统模式。Bootloader:在操作系统内核运行之前...原创 2019-08-05 14:26:51 · 157 阅读 · 0 评论 -
linux 下创建source insight工程
1.在我的电脑右键,映射网络驱动器2.大体流程如下,其中第三步和第五步后面会有图片显示也可根据用到芯片厂商信号选择x86,arm等,嫌麻烦的话就内核所有添加add all 或者add tree都可以。force all files to be re-parsed:强制所有同步,同步时间比较长大概半个小时左右吧。...原创 2019-07-26 11:02:18 · 588 阅读 · 0 评论 -
FS210开发板软硬件资源
原创 2019-07-30 10:59:02 · 393 阅读 · 0 评论 -
linux之平台总线led_dev,led_drv,ledapp程序demo
plat_led_dev.c#include <linux/init.h>#include <linux/module.h>#include <linux/platform_device.h>#define GPC0_CONF_REG 0xe0200060#define GPC0_SIZE 8 // 24表示需要使用6个寄存器, 8表示使...原创 2019-07-29 20:55:18 · 372 阅读 · 0 评论 -
linux 非阻塞之poll和select操作
poll和select操作一个应用使用设备时采用阻塞IO:会使进程休眠,让出CPU,高效非阻塞IO:不停查询,占用CPU,低效一个应用控制多个设备文件来达到需求,但当一个设备文件发生阻塞时调用进程被休眠,其他设备文件就停止工作阻塞方式:在read调用时阻塞应用–>read()–>sys_read—>xxx_read例程IO复用:阻塞一组文件的描述符应用–>...原创 2019-07-29 20:04:07 · 298 阅读 · 0 评论 -
ARM交叉编译工具链gnueabi、none-eabi、arm-eabi等命名的区别
命名规则交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi]arch – 体系架构,如ARM,MIPSvendor – 工具链提供商os – 目标操作系统eabi – 嵌入式应用二进制接口(Embedded Application Binary Interface)根据对操作系统的支持与否,ARM GCC可分为支持和不支持操作系统,如arm...转载 2019-07-24 20:26:12 · 254 阅读 · 0 评论 -
Linux内核中双向链表的经典实现
转载:http://www.cnblogs.com/skywang12345/p/3562146.html概要前面一章"介绍双向链表并给出了C/C++/Java三种实现",本章继续对双向链表进行探讨,介绍的内容是Linux内核中双向链表的经典实现和用法。其中,也会涉及到Linux内核中非常常用的两个经典宏定义offsetof和container_of。内容包括:Linux中的两个经典宏定义...转载 2019-06-12 20:09:36 · 92 阅读 · 0 评论 -
Shell编程
一.shell脚本(shell script)与windows/DOS下的批处理相似。1.vi编辑*.sh文件开头#!/bin/bash…符号#!用来告诉系统它后面的参数是用来执行该文件的程序。编辑完该文件之后不能立即去执行它,需要给文件设置可执行程序权限如下:chmod+xfilename2.执行方法一:chmod +x filename2.执行 方法一:chmod+xfile...原创 2019-05-28 13:28:38 · 70 阅读 · 0 评论 -
shell脚本-循环语
【1】循环语句for的用法(1)循环语句for1)当循环次数已知或确定时,使用for循环语句来多次执行一条或一组命令。循环体由语句括号do和done来限定。格式为:for 变量名 in 单词表do命令表done2)变量依次取单词表中的各个单词, 每取一次单词, 就执行一次循环体中的命令.循环次数由单词表中的单词数确定. 命令表中的命令可以是一条, 也可以是由分号或换...转载 2019-05-03 11:56:56 · 114 阅读 · 0 评论 -
shell脚本-分支语句
【1】条件语句(1)结构性语句结构性语句主要根据程序的运行状态、输入数据、变量的取值、控制信号以及运行时间等因素来控制程序的运行流程。主要包括:条件测试语句(两路分支)、多路分支语句、循环语句、循环控制语句和后台执行语句等。(2)条件语句if…then…fi语法结构:if 表达式then 命令表fi1)如果表达式为真, 则执行命令表中的命令; 否则退出if语句, 即执行...转载 2019-05-03 11:55:55 · 515 阅读 · 0 评论 -
shell脚本-功能语句
【1】说明性语句(1)shell 程序和语句shell 程序由零或多条shell语句构成。 shell语句包括三类:说明性语句、功能性语句和结构性语句。说明性语句:以#号开始到该行结束,不被解释执行功能性语句:任意的shell命令、用户程序或其它shell程序。结构性语句:条件测试语句、多路分支语句、循环语句、循环控制语句等。(2)说明性语句(注释行)注释行可以出现在程序中的任...转载 2019-05-03 11:55:16 · 227 阅读 · 0 评论 -
shell脚本-变量
【1】shell脚本的基础知识(1)shell脚本的本质编译型语言解释型语言shell脚本语言是解释型语言shell脚本的本质shell命令的有序集合(2)shell 编程的基本过程基本过程分为三步:step1. 建立 shell 文件包含任意多行操作系统命令或shell命令的文本文件;step2. 赋予shell文件执行权限用chmod命令修改权限;step3. 执行s...转载 2019-05-03 11:54:45 · 83 阅读 · 0 评论 -
linux网络配置管理
【1】网络配置基础(1)用户既可以通过命令行的方式,也可以通过友好的图形界面,轻松完成网络配置。(2)实现Linux网络配置的惟一目标就是修改系统中众多的网络配置文件,如/etc/interfaces、/etc/hosts,/etc/resolv.conf 等等。(3)通常,用户可能使用普通以太网卡、无线网卡、调制解调器等不同类型的设备接入网络。不同类型的网络设备在主机中被映射为相应的网...转载 2019-05-03 11:54:02 · 341 阅读 · 0 评论 -
LINUX文件系统相关命令
【1】file、mkdir、rmdir、ln命令(1)文件和目录相关的命令pwd ls cd touch cp mv rm cat head tail已经在C语言基础补习课程中讲过(2)file命令1) 在Linux文件系统中,文件扩展名不总是被使用或被一致地使用。如果一个文件没有扩展名,或者文件与其扩展名不符时怎么办呢?file命令功能用于判定一个文件的类型。file命令一般语法格式...转载 2019-05-03 11:53:13 · 562 阅读 · 0 评论 -
LINUX文件系统的类型和结构
【1】Linux文件系统的类型(1)在任何一个操作系统中,文件系统无疑是其最重要的组件,用于组织和管理计算机存储设备上的大量文件,并提供用户交互接口。Linux同样具备完善的文件系统。用户既可以使用界面友好的Nautilus图形文件管理器,也可以使用功能强大的shell文件系统管理工具。(2)linux是一种兼容性很高的操作系统,支持的文件系统格式很多,大体可分以下几类:1)磁盘文件系统...转载 2019-05-03 11:52:32 · 219 阅读 · 0 评论 -
Linux进程管理命令
【1】进程的概念(1)编译程序上的两个进程程序的一次执行就是一个进程程序的两次执行就产生了p1和p2进程【2】使用ps命令查看进程(1)显示进程(process)?的动态(2)语法:ps [options](3)常见的参数:-A 列出所有的行程-w 显示加宽可以显示较多的资讯-au 显示较详细的资讯-aux 显示所有包含其他使用者的行程(4) %CPU 占...转载 2019-05-03 11:51:32 · 130 阅读 · 0 评论 -
Linux用户管理命令
【1】用户管理相关文件介绍(1)用户管理用户的属性1)用户名2)口令3)用户ID(UID)4)用户主目录(HOME)5)用户shell(2)/etc/passwd文件/etc/passwd文件是系统能够识别的用户清单。用户登陆时,系统查询这个文件,确定用户的UID并验证用户口令1)登陆名2)经过加密的口令3)UID4)默认的GID5)个人信息6)主目录7)登陆she...转载 2019-05-03 11:50:36 · 99 阅读 · 0 评论 -
shell基本系统维护命令
笔记【1】man、passwd、su、echo命令的用法(1)获取联机帮助1)使用man命令可以找到特定的联机帮助页,并提供简短的命令说明。一般语法格式为:man commandname2)联机帮助页提供了指定命令commandname的相关信息,包括:名称、函数、语法以及可选参数描述等。无论帮助有多长,都遵循这个格式显示。在页面很多的情况下使用PageUp和PageDown键翻页。...转载 2019-05-03 11:49:45 · 184 阅读 · 0 评论 -
Unix和Linux
Unix和Linux一、Unix的起源1969年,由KenThompson在AT&T贝尔实验室实现的。使用的是用汇编语言。1970年,KenThompson和DennisRitchie使用 C语言对整个系统进行了再加工和编写,使得Unix能够很容易的移植到其他硬件的计算机上。二、Unix的推广-从学校到企业起初AT&T没有把Unix作为正式商品,以分发许可证的方法,对Un...转载 2019-04-28 12:21:41 · 185 阅读 · 0 评论