- 博客(40)
- 资源 (1)
- 收藏
- 关注

原创 树莓派4 | 5.私有云- KodExplorer可道云
树莓派4 | 5.私有云- KodExplorer目录树莓派4 | 5.私有云- KodExplorer一. KodExplorer简介二. 环境搭建2.1 php72.2 apache2三. KodExplorer安装3.1 下载3.2 安装四. KodExplorer使用4.1 注册管理员4.2 登录五. 参考资料一. KodExplor...
2019-12-23 20:53:01
2855

原创 树莓派4 | 4.私有云搭建-owncloud
树莓派4 | 4.私有云搭建-owncloud目录一. Owncloud简介二.PHP7安装2.1 配置源2.2 安装php2.3 安装依赖三.Apache2安装3.1 安装apache2和依赖3.2 启动apache23.3 服务启动报错四.Mariadb安装4.1 安装mariadb包和相关依赖4.2 数据库账户管理4.2.1 登录ma...
2019-12-22 11:35:13
7015
10

原创 树莓派4 | 3.wifi和VNC设置
树莓派4 | 3.wifi和VNC设置目录树莓派4 | 3.wifi和VNC设置一.无线Wifi设置1.1 搜索wifi1.2 编辑wifi配置文件1.3 设置静态IP1.4 重启二. VNC远程桌面2.1 提前准备2.2 安装软件包2.3 设置远程密码2.4 启动vnc服务2.5 远程连接三. 参考资料一.无线Wifi设置对于不方便...
2019-12-18 21:09:41
3778
4
原创 树莓派4 | 2.装机和开机
2.装机和开机目录 2.装机和开机一.装机二.烧系统2.1前提准备2.2开始烧录系统2.3点亮开机三. 参考资料一.装机首先先上图,树莓派核心板、三块散热片以及传说中的硅脂...
2019-12-14 19:47:05
1288
1
原创 树莓派4 | 1.开箱和准备
开箱和准备目录 开箱和准备一. 开箱二. 准备2.1 树莓派ISO下载2.2 SD卡格式化工具(SD Memory Card Formatter)2.3 SD卡烧录工具(etcher)2...
2019-12-14 16:22:24
480
原创 phoronix-test-suite,移植不支持的工具方法
ps:系统ubuntuPTS开发一.PTS安装1. 从官网下载官方的deb包 (http://www.phoronix-test-suite.com/?k=downloads)2. 通过dpkg命令进行安装,安装之后会有依赖问题,一般通过sudo apt-get install -f命令可以解决3. 执行which phoronix-test-suit输出为/usr/bin/phoron...
2018-05-14 11:19:39
1603
原创 java常用类和对象
import java.util.Scanner; Scanner scanner = new Scanner(System.in); intnum = scanner.nextInt();import javax.swing.JOptionPane; String result = JOptionPane.show
2016-05-21 09:35:02
446
原创 2016-5-9至2016-5-15
每周任务(5-9 - 5-15)任务一:驱动开发1.设备驱动程序模块编程,重点通过《Linux设备驱动》多看驱动的实例。多多分析内核代码。设备驱动程序涉及到内核和硬件。是一个学习Linux嵌入式最好的入门方法。主要是多看实例。2.通过博客复习前面驱动编程的技巧,熟悉内核提供给驱动的机制。3.写驱动程序的file_operation函数。多看别人代码怎么写的。找一个驱动然后去分析
2016-05-15 20:14:18
347
原创 2016-5-2至2016-5-8
每周任务(5-2 - 5-8)任务一:驱动开发1.设备驱动程序模块编程,重点通过《Linux设备驱动》多看驱动的实例。多多分析内核代码。设备驱动程序涉及到内核和硬件。是一个学习Linux嵌入式最好的入门方法。主要是多看实例。2.通过博客复习前面驱动编程的技巧,熟悉内核提供给驱动的机制。3.写驱动程序的file_operation函数。多看别人代码怎么写的。找一个驱动然后去分析。
2016-05-10 11:17:55
622
原创 platform简述
一.platform总线、设备、驱动关系。 首先在2.6的驱动模型里面,关心总线、设备、驱动,总线将设备和驱动绑定。在系统每注册一个设备时,会通过总线寻找对应的驱动。在系统每注册一个驱动时,会通过总线寻找对应的设备。下面我们来了解设备和驱动的注册过程。二.bus、device、driver数据结构 在了解注册之前,我觉得有必要介绍一下这三者的数据结构,因为dtst是
2016-05-03 17:57:32
712
转载 platform
转载:http://www.linuxidc.com/Linux/2012-12/76196.htm一.Platform设备驱动概念主要讲解平台设备驱动的模型和基本概念,同时因为驱动加载的方式有动态加载和静态加载两种方式,这里我们分别对动态加载和静态加载两种情况下,如何使用平台设备和驱动加以叙述。最后使用mini2440开发板,运用Platform和device_attribute机制
2016-05-03 17:52:51
585
原创 2016-4-25至2016-5-1
每周任务(4-25 - 5-1)任务一:驱动开发1.设备驱动程序模块编程,重点通过《Linux设备驱动》多看驱动的实例。多多分析内核代码。设备驱动程序涉及到内核和硬件。是一个学习Linux嵌入式最好的入门方法。主要是多看实例。2.通过博客复习前面驱动编程的技巧,熟悉内核提供给驱动的机制。3.写驱动程序的file_operation函数。多看别人代码怎么写的。找一个驱动然后去
2016-05-03 17:20:00
261
原创 日常学习准则
日常学习准则:1.以驱动为主:(半天-无限,相对时间比较长的时间段)学习工具: a.源代码。 b.借助《设备驱动开发》作为学习资料如何学习: 首先在书上掌握一些必要的概念和知识点,最终通过源码的分析巩固和掌握知识要点。要求: a.看源码,掌握各种设备驱动的编写。不一定要会写。但一定要看懂。 b.写出各种设备驱动的博客。 (博客要求:通过
2016-04-26 21:06:35
357
原创 2016-4-18至2016-4-24
每周任务(18-24)任务一:1.设备驱动程序模块编程 [v]任务二:Linux系统编程(每日3章)1.根据《系统编程》第一册。写具体的程序,自己想做什么去实现,尽量多用系统调用.任务三:1.找到如何学习内核源代码方法,2.通过学习源代码,深入了解硬件,驱动,系统调用。3.看内核源码,学习内核框架,算法,思想。任务四:
2016-04-24 20:37:38
310
原创 添加LCD背光驱动
一.材料老师给的模板kernel自己实现的2.0kernel.机器ID7777二.常用概念LCD驱动属于platform类型的设备。只要是platform类型的设备就需要注册device和注册移植driver.由于LCD硬件的特殊性,我们需要设置屏幕硬件相关的数据结构。三.移植LCD驱动a.首先lcd的device需要传参数给driver在arch/
2016-04-24 17:36:12
768
原创 7.内存和IO
内存浅谈:器件物理地址由对应CPU地址线确定的。内核通过内存机制,创造4G虚拟地址,驱动编程用的地址都是虚拟地址,没有实际意义,使用这些地址之前必须对应物理地址(页表),否则出现缺页。避免缺页,第一种方法:用kmalloc申请物理地址(返回物理存储器地址,sdram等地址)。第二种方法:用ioremap指定具体物理空间里面的地址,任何器件物理地址。不局限于存储器地址,而且可以是寄存器地
2016-04-21 11:09:27
395
原创 虚拟机linux配置NFS
NFS service 一、安装NFS服务端1、安装NFS lingd@ubuntu:~$ sudo apt-get install nfs-kernel-server同时会有两个软件包nfs-common和portmap被安装上2.修改NFS配置文件 lingd@ubuntu:~$ vi /etc/exports内容为:/home/share 192.168.1
2016-04-20 21:49:37
2656
原创 6.时钟
一.概念1.从功能方面时钟分三种:计时,延时,定时器。2.内核时钟:内核通过定时器(timer)中断来跟踪时间流,硬件定时器以周期性的间隔产生中断,这个时间间隔通常取1ms到10ms。3.jiffies计算器:每次当定时器中断发生时,内核内部通过一个64位的变量jiffies_64做加一计数。驱动程序开发者通常访问的是jiffies变量,它是jiffies_64的低32位。ji
2016-04-19 21:53:22
417
原创 5.中断
一.概念1.登记中断:意味着将底半部处理程序挂到该设备的底半部执行队列中去。2.实现底半部的机制:tasklet和work queue(工作队列).3.内核时钟:内核通过定时器(timer)中断来跟踪时间流,硬件定时器以周期性的间隔产生中断,这个时间间隔通常取1ms到10ms。4.jiffies计算器:每次当定时器中断发生时,内核内部通过一个64位的变量jiffies_64做加一计
2016-04-18 21:33:50
286
原创 4.阻塞和非阻塞
一.概念1.等待队列头相当于一个双向链表的头,等待队列相当于双向列表中的链表项2.等待队列由循环链表实现,其元素包括指向进程描述符的指针。每个等待队列都有一个等待队列头(wait queue head)3.当一个任务需要在某个wait_queue_head上睡眠时,将自己的进程控制块信息封装到wait_queue中,然后挂载到wait_queue的链表中,执行调度睡眠。当某些事件发生后
2016-04-18 11:41:58
391
原创 3.并发和竞争
一.概念1.信号量本质上是一个整数值,2.Linux内核中几乎所有的信号量均用于互斥。当信号量用于互斥,只能由单个进程或线程拥有。Linux内核中几乎所有的信号量均用于互斥。3.一个自旋锁是一个互斥设备,只有两个值:“锁定”和“解锁”。如果锁被其他人获得,则代码进入忙循环并重复检查这个锁,直到该锁可用为止。这个循环就是自旋锁的“自旋”。4.自旋锁用于
2016-04-18 09:54:12
715
原创 2016-4-11至2016-4-17
每周任务(11-17)任务一:1.写裸机程序,理解硬件工作原理。思考裸机有那些硬件需要了解原理。例如I2C,NAND...2.设备驱动 [V]任务二:1.找到如何学习内核源代码方法,2.通过学习源代码,深入了解硬件,驱动,系统调用。3.看内核源码,学习内核框架,算法,思想。任务三:1.复习创建自己uboot,kernel,
2016-04-17 22:07:30
257
转载 Linux进程的睡眠和唤醒简析
转载自:http://www.2cto.com/os/201204/127771.html1 Linux进程的睡眠和唤醒在Linux中,仅等待CPU时间的进程称为就绪进程,它们被放置在一个运行队列中,一个就绪进程的状 态标志位为TASK_RUNNING。一旦一个运行中的进程时间片用完, Linux 内核的调度器会剥夺这个进程对CPU的控制权,并且从运行队列中选择一个合适的进程投入运
2016-04-16 14:53:28
301
原创 2.字符设备驱动
一.字符设备开发的基本步骤 1.确定主设备号和次设备号 2.实现初始化函数,注册字符设备 3.实现字符驱动程序 4.实现file_operations结构体 5.实现销毁函数,释放字符设备 6.创建设备文件节点二.常用概念1.主设备号是内核识别一个设备的标识。整数(占12bits),范围从0到4095,通常使用1到2552.次设备号由内核使用,用
2016-04-13 16:52:48
275
原创 1.设备驱动基础
一.驱动程序编程概念:1.驱动学习知识结构: 1.linux驱动设计模式,框架.(40%) 2.内核相关的知识.(30%) 3.硬件相关的知识.(30%)把更多的硬件相关的程序放入内核。2.驱动程序的分类: 1.字符设备驱动:能以字节来访问。通过字符设备文件访问块驱动程序。 2.网络接口:一个网络负责发送和接受数据报文。通过套接字访
2016-04-13 16:49:19
286
原创 2016-4-4至2016-4-10
接下来一个星期的任务(4-10)。任务一:熟练掌握uboot,kernel,fs各自的作用。1.按照按博客,大概了解编写了解uboot,kernel,fs.看懂里面的每一个步骤。(2016.4.5之前)[v]2.看嵌入式开发手册,结合源代码一部分一部分的看。例如先看uboot,再看kernel,再看fs。(2016.4.5-2016.4.10) [v]3.最
2016-04-10 22:07:59
239
原创 2016-3-28至2016-4-3
接下来一个星期的任务。任务一:熟练掌握uboot,kernel,fs各自的作用。1.按照网上写的流程,大概了解uboot,kernel,fs.看懂里面的每一个步骤。(2016.4.5之前)2.看嵌入式开发手册,结合源代码一部分一部分的看。例如先看uboot,再看kernel,再看fs。(2016.4.5-2016.4.10)3.最终能掌握uboot,kernel,fs源代码基本部分
2016-04-03 20:43:10
305
原创 smdk210 构建根文件系统
构建根文件系统常用概念:1.如何建立符号链接#ln –s busybox ls#ln –s busybox cp2.glibc库包括的主要文件:静态库文件( .a)动态库文件( .so、.so.[0-9]*) 一.解压步骤。1.复制 busybox-1.2.0.tagz到虚拟机里。2.tar xvf busybox-1.2.0.tagz 3.cd
2016-04-01 21:40:23
440
转载 linux文件系统的移植
原文:http://www.cnblogs.com/lr-ting/archive/2012/07/09/2576760.htmllinux文件系统的移植-根文件系统制作 根文件系统一直以来都是所有类Unix操作系统的一个重要组成部分,也可以认为是嵌入式Linux系统区别于其他一些传统嵌入式操作系统的重要特征,它给Linux带来了许多强大和灵活的功能,同时也带来了
2016-04-01 18:59:14
1570
原创 smdk210 内核移植
smdk210 内核移植一.掌握:.tar.bz2解压:tar jxvfFileName.tar.bz2压缩:tar jcvfFileName.tar.bz2 DirName 第一部分:基本移植1.1、内核编译体验修改Makefilecp android_kernel_2.6.35_smdkv210.tar.bz2 解压之, # tar -jxvf and
2016-03-31 21:09:30
990
原创 smdk210 uboot移植
uboot移植一.概念:BSP是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP,例如VxWorks的BSP和Linux的BSP相对于某一CPU来说尽管实现的功能一样,可是写法和接口定义是完全不同的,所以写BSP一定要按照该系统BSP
2016-03-27 21:50:28
1222
原创 S5PV210加文件头
#include #include #include #include #define BUF_SIZE (16*1024)#define FILE_HEAD (16)#define FILE_HEAD_SIZE (8*1024)#define SEEK_SET 0#define SEEK_CUR 1#define SEEK_END 2//文件加入文件头
2016-03-27 09:07:31
372
原创 smdk210 Uboot的开发
第一章Uboot开发一.最终目的:启动内核。二.学习需要掌握的知识。1.了解Bootloader的概念2.掌握Uboot配置,编译,uboot的目录结构和Makefile4.分析uboot2个阶段的功能,通过源代码。5.Uboot常用命令,和命令的实现。6.掌握uboot和内核怎么交互的。三.Uboot开发流程: 1.解压缩 2.打补丁
2016-03-26 17:26:13
786
原创 S5PV210 中断编程流程 UART中断
一.需掌握知识:怎样初始化UART中断。二.程序效果:今天编写interrput_uart程序,预期的实验结果是,通过中断的方式,在串口软件上输入的字符可以在串口软件上看见。三.编程思路1.第一步用上一篇博客的interrput初始化程序初始化中断。2.第二步通过查看串口寄存器,初始化串口设置为中断模式。3.第三步设置使能UART对应的中断源
2016-03-23 22:05:26
1267
原创 S5PV210 中断编程流程 按键中断
一.需掌握知识:怎样初始化中断,怎样设置一级二级向量表。二.程序效果:今天编写interrput程序,预期的实验结果是,在S5PV210开发板上通过按键,以中断的方式实现led闪烁。三. 常用概念1.一级向量表:在以下地址寄存器中写入当异常是调用的函数。#define ABORT_UNDEFINED_TABLE ((volatile unsigned int*)0X
2016-03-23 17:50:23
2467
原创 S5PV210 UART编程流程 协议类模块操作
协议类编程今天编写uart程序,预期的实验结果是,在S5PV210开发板上实现用串口实现接受和发送功能,实现和PC机通讯。常用的协议类模块有:UART,IIC,SPI,NAND Falsh,LCD一. 常用概念UART:universal asyncrecive transmit通用异步收发器。 用于PC机和开发板之间的通讯,数据传
2016-03-22 21:08:20
997
原创 S5PV210 sys_clock编程流程 系统时钟功能模块操作
今天编写sys_time程序,预期的实验结果是,在S5PV210开发板上实现将系统主频设置为1GHZ,检测用led闪烁的快慢表示。编程思路:一. 通用概念的了解。1. S5PV210一共有3个时钟域,MSYS,DSYS,PSYS。时钟域代表的是一个区域的频率。一个区域的频率大致相等。2. 确定3个时钟域频率有3个因素(通过查看芯片手册系统时钟图可知):1)
2016-03-22 15:23:36
851
转载 Linux 时间
转自:http://blog.chinaunix.net/uid-26404201-id-3082041.html一、时间的类型(1)格林威治标准时间 Coordinated Universal Time(UTC)是世界标准时间,即常说的格林威治标准时间(Greenwich Mean Time,GMT). 注:格林威治时间和本地时间不同.(2)日历时间
2016-03-21 21:39:44
274
原创 S5PV210 led_key编程流程 GPIO类功能模块操作
今天编写led_key程序,预期的实验结果是,在S5PV210开发板上实现用按键控制LED闪烁。编程思路:一.首先我们应该知道如何点亮LED。(通过给指定管脚输出高低电平,控制LED亮灭)1.通过查看原理图,我们可以确定led控制的GPIO管脚。确定LED在CPU上对应的管脚。(GPJ2)2.之后去开发板芯片手册,通过查找管脚得到管脚寄存器的描述。3
2016-03-21 20:45:51
1691
原创 S5PV210 一些模块编程常用寄存器
1.PLL和系统时钟(A.M.E.V)PLL(M.D.P) 。 MUX 。 DIV1.设置时钟源 CLK_SRC02.设置升平时间 (A.P.M.V)PLL_LOCK3.设置(A.P.M.V)PLL APLL_CON04.设置分频器 CLK_DIV05.设置时钟源 CLK_SRC02.PWM(脉冲宽度调制)
2016-03-16 19:22:44
768
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人