Linux
文章平均质量分 78
oshan2012
这个作者很懒,什么都没留下…
展开
-
NUC972-5寸电容屏-linux-drv-chrdevbase
nuc97x linux驱动原创 2022-07-01 16:39:21 · 1051 阅读 · 1 评论 -
Modprobe加载驱动问题
1、Linux驱动动态加载的两种方式linux设备驱动的动态加载可以使用insmod或modprobe两种方式,insmod一次只能加载一个特定的驱动,且需要驱动的绝对路径,而modprobe则可以一次性将有依赖关系的驱动全部加载到内核,不需要驱动的具体地址。但需要将驱动拷贝到/lib/modules/$(uname -r)/目录下。示例:insmod XXX.komodprobe xxx.ko122、modprobe加载驱动时的问题modprobe xxx.komodprobe: c转载 2021-03-09 08:34:19 · 5326 阅读 · 1 评论 -
读懂 diff 命令
https://blog.csdn.net/houzhizhen/article/details/79035825diff是Unix系统的一个很重要的工具程序。它用来比较两个文本文件的差异,是代码版本管理的基石之一。你在命令行下,输入: 1 $diff< 变动前的文件 > < 变动后的文件 >; diff就会告诉你,这两个文件有何差异。它的显示结果不太好懂,下面我就来说明,如何读懂diff。一、diff的三种格式...转载 2021-02-05 09:48:26 · 539 阅读 · 0 评论 -
lichee pi zero 荔枝派zero uboot编译 烧录
1.选用主线uboot2.准备uboot源码和交叉编译工具链交叉编译工具链网盘地址:http://pan.baidu.com/s/1hsf22fqtar xvf gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xzsudo mv gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf /opt/增加路径...原创 2021-02-02 13:39:19 · 1776 阅读 · 0 评论 -
linux I2C之RTC8025、fm24cl16
https://blog.csdn.net/chenliang0224/article/details/51298682说明:主设备I2C-0挂载两个从设备fm24cl16铁电和RTC-rx8025t。内核:linux3.10.32平台:nuc9721、板级文件修改 arch/arm/much-nuc970/dev.c1.1 i2c-0的platform_device平台设备注册 //i2c-0的总线配置 static struct nuc970_...转载 2020-08-08 16:24:00 · 823 阅读 · 0 评论 -
linux i2c
https://blog.csdn.net/chenliang0224/article/details/790699081.前言:linux I2C体系结构由三部分组成①I2C核心:提供I2C总线驱动和设备驱动的注册、注销方法②I2C总线驱动:主要包括两个数据结构,适配器I2c_adapter(包括algorithm结构体指针)、和algorithm数据结构(最终I2C的通信是由algorithm结构控制发送与接受数据)③I2C设备驱动:是对I2C硬件体系结构中设备端的实现,两个数.转载 2020-08-08 15:43:01 · 581 阅读 · 0 评论 -
NUC972触摸屏驱动移植过程分析(二)
https://blog.csdn.net/b7376811/article/details/86607529今天继续分析NUC972的触摸屏驱动移植过程,上一节主要分析了触摸屏需要数据,今天来分析一下驱动部分,上一节我们已经了解了触摸屏一般有I2C接口和gpio接口,所以触摸屏既是一个I2C设备,也是一个input设备,linux中把触摸屏整体归为input设备,在input驱动中又包含了I2C驱动和gpio按键驱动,今天首先分析一下I2C驱动部分。I2C驱动在linux内核中整的还是挺复杂的,按转载 2020-08-04 15:46:07 · 759 阅读 · 0 评论 -
NUC972触摸屏驱动移植过程分析(一)
https://blog.csdn.net/b7376811/article/details/86514683因为下一个项目可能会用到触摸屏,所以这段时间对触摸屏的驱动的移植进行了研究,今天正好有机会,谈谈移植过程。其实基于开发板对触摸屏驱动进行移植,需要做的工作并不是太多,因为大部分工作开发板的供应商已经提供好了,但是用起来总是不尽人意,所以需要进一步优化,废话少说,步入正题。首先看一下硬件电路,如下图所示:开发板上使用的是TSC2007作为驱动触摸屏(电阻屏)的驱动芯片,没有使用n.转载 2020-08-04 15:43:36 · 1456 阅读 · 0 评论 -
linux spi驱动
https://blog.csdn.net/chenliang0224/article/details/51057109最近在学习Linux spi驱动,中途出现了诸多疑问,天苍苍野茫茫,坚持总是可以看到牛羊的,本文以新唐NUC972这颗芯片为例进行逐步分析 参考很有价值的两篇文章: http://www.th7.cn/system/lin/201507/122488.shtml http://blog.chinaunix.net/uid-25445243-id-4026974.html转载 2020-08-04 15:42:10 · 309 阅读 · 0 评论 -
linux pinctrl驱动
https://blog.csdn.net/chenliang0224/article/details/78777995前言:linux系统下采用pinctrl子系统管理所有的IO管脚,并对设备外围管脚(如串口、I2C、spi、LCD)都有相应的配置模式,本博客以pinctrl子系统细说该驱动架构。1. pinctrl设备注册、退出 static int __init nuc970_pinctrl_init(void) { return platform..转载 2020-08-04 15:40:26 · 501 阅读 · 0 评论 -
在nuc972上实现I2C接口数字电位器isl95311的驱动
https://blog.csdn.net/b7376811/article/details/100023485当前的这个项目需要使用一个数字电位器,型号选的是isl95311,控制接口是I2C,折腾了两天,终于实现了这个电位器的驱动,今天记录一下这个过程,以备以后查阅。 1、首先在nuc972的设备文件中增加isl95311相关的设备信息,在内核中的路径为/arch/arm/mach-nuc970/dev.c,如下所示: static struct i2c_board_in...转载 2020-08-04 15:37:43 · 453 阅读 · 0 评论 -
apt-get安装软件Unable to locate package错误解决办法
最近新装了Ubuntu10.10的系统,完成后想采用apt-get方式安装一些软件,却总是报出这个错误:Unable to locate package 这个错误一般是因为软件源未更新造成的,于是采用命令:sudo apt-get update 来更新软件源,结果报出好多404错误,好多资源找不到。 这样看来是软件源有问题,需要换一个啦,于是通过文件系统进入/etc/apt/目录下,可以看到有一个sources.list文件,软件源的路径配置就是存储在这个文件中的(建议修改之前拷贝一份做个备份),鼠标双转载 2020-07-31 13:44:42 · 3059 阅读 · 1 评论 -
NUC977 linux和QT环境搭建
1、开发环境编译器:官方提供的arm-linux-gcc 4.8.4操作系统:ubuntu 14.04 32位2、步骤(1)运行BSP目录的install.sh,QT/ReadMe目录下的software.sh。(2)编译uboot,之后会产生mkimage,把mkimage添加到环境变量。(3)按照手册配置内核,编译内核。根文件系统在nfs服务器。(4)编译busybox,制作根文件系统。(5)从网上下载tslib。配置,编译,脚本如下: #!/bin/ba.转载 2020-07-31 13:43:15 · 432 阅读 · 0 评论 -
nuc977 串口测试
app_uart10_nuvoton.c/**************************************************************************** * * * Copyright (c) 2014 Nuvoton Technology Corp. All rights reserved. *原创 2020-07-31 10:04:50 · 812 阅读 · 0 评论 -
NUC972 添加LED驱动 leds_gpio 方式
https://blog.csdn.net/justgg/article/details/104410089LED驱动的方式有多种,可以自定义驱动,然后通过/dev/myled 设备文件,来控制led。也可以通过内核 led驱动架构来控制,通过/sys/leds/myled/ 里面的各种文件来控制。内核还提供了一个非常方便的方法,就是用过leds_gpio驱动来控制LED. 我们只需要配置相关引脚就新了。步骤如下:1.添加配置引脚修改 dev.c 文件 在内核目录/arch/arm/..转载 2020-07-30 11:21:26 · 1165 阅读 · 0 评论 -
Linux命令行下如何终止当前程序
Linux命令行下如何终止当前程序快捷键:Ctrl+c在命令行下起着终止当前执行程序的作用,Ctrl+d相当于exit命令,退出当前shellCtrl+s挂起当前shell(保护作用很明显哦)Ctrl+q解冻挂起的shell再不行就重新连接打开一个终端,reboot linux 或 kill 相关进程。https://www.cnblogs.com/pejsidney/p/8932707.html...转载 2020-07-30 11:13:03 · 945 阅读 · 0 评论 -
nuc977 platform led驱动
leddevice.c#include <linux/init.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/io.h>#include <linux/errno.h>#include <linux/acpi.h>#include <linux/platform_device.h>#include <linux原创 2020-07-28 15:35:47 · 407 阅读 · 0 评论 -
nuc977 linux 按键中断+定时器消抖
10ms消抖时间应该加长到30ms左右drv_buttons2.c#include <linux/init.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/io.h>#include <linux/errno.h>#include <linux/acpi.h>#include <linux/platform_device.原创 2020-07-17 15:29:12 · 519 阅读 · 0 评论 -
nuc977 linux 按键中断 未消抖
drv_buttons.c#include <linux/init.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/io.h>#include <linux/errno.h>#include <linux/acpi.h>#include <linux/platform_device.h>#include <.原创 2020-07-17 11:51:06 · 244 阅读 · 0 评论 -
nuc977 linux 定时器驱动
drv_timer.c#include <linux/init.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/io.h>#include <linux/errno.h>#include <linux/acpi.h>#include <linux/platform_device.h>#include <li...原创 2020-07-16 14:48:24 · 372 阅读 · 0 评论 -
nuc977 新字符驱动 led
drv_newcharled.c#include <linux/init.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/io.h>#include <linux/errno.h>#include <linux/acpi.h>#include <linux/platform_device.h>#include <.原创 2020-07-08 15:35:10 · 361 阅读 · 0 评论 -
nuc977 led 新唐自带gpio linux驱动
drv_led.c#include <linux/init.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/io.h>#include <linux/errno.h>#include <linux/acpi.h>#include <linux/platform_device.h>#include <linux/g原创 2020-07-06 17:07:26 · 869 阅读 · 2 评论 -
nuc977 linux 最简单的驱动测试
1.建立drv_hello.c#include <linux/init.h>#include <linux/module.h>static int __init nuc977_hello_init(void){ printk("nuc977_hello_init() \r\n"); return 0;}static void __exit nuc977_hello_exit(void){ printk("nuc977_hello_exit()\r\n原创 2020-07-06 13:25:24 · 579 阅读 · 0 评论 -
nuc977 linux应用 helloworld
我是在windows 下写的helloworld.c文件#include <stdio.h>int main(){ printf("hello world \r\n"); printf("nuc977 linux 3.1.x \r\n"); return 0;}用ftp软件传到ubuntu在ubuntu下打开terminal到helloworld.c文件目录下arm-linux-gcc helloworld.c -o helloworld...原创 2020-07-04 11:18:29 · 197 阅读 · 0 评论 -
nuc977 linux i9341 2.8寸lcd配置
BSP是这样的LCD 接口設置要使能 LCD 屏幕支持的話,請依照以下的選項來設置內核:Device Drivers --->Graphics support ---><*> Support for frame buffer devices --->[*] NUC970 LCD framebuffer supportNUC970 LCD panel selection (800x480 5-Inch Color TFTLCD) --->LCD sour原创 2020-07-04 10:39:00 · 789 阅读 · 0 评论 -
nuc977 ping: sendto: Network is unreachable
~ # ping 192.168.0.199PING 192.168.0.199 (192.168.0.199): 56 data bytesping: sendto: Network is unreachable用route命令测试,全是空的~ # routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface原来是文件系统问题手...原创 2020-07-03 14:58:46 · 322 阅读 · 0 评论 -
nuc977 配置nfs
ubuntu16.04安装nfs服务如果用: apt-get install nfs-kernel-server portmap安装后会自动运行打开/etc/exports文件,在末尾加入:/ * 保存(注意/ * 之间有空格)注:/etc/exports为NFS服务器的配置文件,"/ *"是挂载根目录下的所有文件执行下面重启NFS服务/etc/init.d/nfs-kernel-server restart注:nfs允许挂载的目录及权...原创 2020-07-03 14:03:05 · 461 阅读 · 0 评论 -
linux 简单的shell脚本
ctrl+alt+t打开terminal键盘i使其进入插入文本状态,输入完成:wq保存并退出vi编辑器chmod 777 11.sh 让其具有执行权限./11.sh 没有变化souce ./11.sh 执行Linux source命令:通常用法:source filepath 或 . filepath功能:使当前shell读入路径为filepath的shell文件并依次执行文件中的所有语句,通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。例如,原创 2020-07-03 13:25:50 · 186 阅读 · 0 评论 -
arm MMU详解
https://blog.csdn.net/ultraman_hs/article/details/52791057#comments一、MMU的产生许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办.转载 2020-06-29 14:16:04 · 228 阅读 · 0 评论 -
内核编译时, 到底用make clean, make mrproper还是make distclean
在编译内核时, 被make clean, make mrproer 和 make distclean搞的纠结, 稍微总结一下这三者之间的区别:解压内核源码包后, 到内核源代码目录树的顶层目录, 执行# make helpCleaning targets: clean - Remove most generated files but keep the config and enough build support to build ...转载 2020-06-29 10:33:03 · 1099 阅读 · 0 评论 -
U-boot mkimage指定Linux内核地址时的两种方式
uImage的制作是使用的u-boot工具mkimage,build完u-boot后也会将mkimage build出來到/tools目录下,可以直接拿來用,它的作用就是在zImage的前面加上64个字节的头,让u-boot能够识别要加载内核的类型、加载地址等。基本格式:mkimage -A arch -O os -T type -C comp -a addr -e ep -n name -d...转载 2020-03-21 16:01:19 · 413 阅读 · 0 评论 -
zImage和uImage的区别联系
inux内核经过编译后会生成一个elf格式的可执行程序,叫vmlinux或vmlinuz,这个就是原始的未经任何处理加工的原版内核elf文件;嵌入式系统部署时烧录的一般不是这个vmlinuz/vmlinux,而是要用objcopy工具去制作成烧录镜像格式,经过制作加工成烧录镜像的文件就叫Image(这个制作烧录镜像主要目的就是缩减大小,节省磁盘)。原则上Image就可以直接被烧录到Flash上进行...转载 2020-03-21 15:24:08 · 289 阅读 · 0 评论 -
Image uImage与zImage的区别
(1)、内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。那么uImage又是什么的?它是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zImage没区别...转载 2020-01-20 11:25:17 · 277 阅读 · 0 评论 -
Linux学习日志(8)- Linux 编译内核[scripts/kconfig/dochecklxdialog] 错误
在编译linux内核时,当用输入命令make menuconfig 时弹出mark@ubuntu:~/work/linux-3.2.0-psp04.06.00.08.sdk$ make menuconfig*** Unable to find the ncurses libraries orthe*** required header files.*** 'make menucon...转载 2020-01-19 13:42:19 · 365 阅读 · 0 评论 -
NUC977 linux和QT环境搭建
晕--- 又要开始做linux开发了。又得搭建开发环境了。。新塘给的资料还不错,看着手册就可以。 博客做个流水记录。搭建基本开发环境1.下载ubuntu-16.04.5-desktop-i386.iso 最好选择这个版本,最好是i386的版本。因为我就是选的这个。。:)2. 安装vmware3.虚拟机安装ubuntu。。很简单都是自动安装的。。第一次安装完以后,重新启动下,VMw...转载 2019-12-13 16:07:57 · 593 阅读 · 0 评论 -
Linux命令:修改文件权限命令chmod、chgrp、chown详解
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。文件或目录的访问权 限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。可执行权限表示允许将该文件作为一个程序执行。文 件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。用户也可根据需要把访问权限设置为需要的...转载 2019-12-10 11:51:34 · 138 阅读 · 0 评论 -
Linux20个常用命令
玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异非常大,而我主要是用Linux进行C/C++和shell程序编写的,所以常用到的命令可以就会跟一个管理L...转载 2019-11-14 08:46:54 · 115 阅读 · 0 评论 -
#!/bin/bash的参数-e
以前看过bash脚本的基础知识,大致的语法应该知道,今天看到uboot的build脚本,它的开头是这样的。#!/bin/sh -e这个-e参数,以前没见过,在网上百度了下,原来-e的参数的作用是:每条指令之后后,都可以用#?去判断他的返回值,零就是正确执行,非零就是执行有误,加了-e之后,就不用自己写代码去判断返回值,返回非零,脚本就会退出。———————————...转载 2019-09-10 16:52:10 · 8946 阅读 · 0 评论 -
#!/bin/bash和#!/bin/sh是什么意思以及区别
一、意思#!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径。其实第一句的#!是对脚本的解释器程序路径,脚本的内容是由解释器解释的,我们可以用各种各样的解释器来写对应的脚本。比如说/bin/csh脚本,/bin/perl脚本,/bin/awk脚本,/bin/sed脚本,甚至/bin/echo等等。#!/bin/bash同理...转载 2019-09-10 16:50:52 · 459 阅读 · 0 评论 -
shell学习之-sed用法解析
通过例子学习sed的用法1,sed介绍sed可删除(delete)、改变(change)、添加(append)、插入(insert)、合、交换文件中的资料行,或读入其它档的资料到文>件中,也可替换(substuite)它们其中的字串、或转换(tranfer)其中的字母等等。例如将文件中的连续空白行删成一行、"local"字串替换成"remote"、"t"字母转换成"T"、将第...转载 2019-09-09 10:45:46 · 302 阅读 · 0 评论