自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘铭

技术使生活更美好

  • 博客(101)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android Studio连接使用第三方模拟器

使用Android Studio自带的模拟器,第一会比较卡,第二配置容易出错,第三,自带的模拟器很吃电脑配置。所以为例解决上面三个问题,可以在电脑上按照第三方手机模拟器,例如:夜神模拟器、雷电模拟器、MUMU模拟器等等,不管是玩游戏还是做项目都不错。夜神模拟器:adb connect 127.0.0.1:62001。雷电模拟器:adb connect 127.0.0.1:5555。3,接下来就只需要在android studio中运行自己的项目就ok了,如下图。1,首先先把第三方模拟器下载好,并打开。

2023-04-21 17:18:37 11776

原创 Android Stuido中修改项目SDK版本号

在Android Studio主界面中选择菜单栏“File->Project Structure”,打开项目结构对话框,在项目结构对话中选择“Modules->app->Properties”,之后在“Compile Sdk Version”中的下拉菜单中选择要设置的SDK,最后点击“Apply”按键,如图2所示。图2 设置“Compile Sdk Version”通过Android Studio创建项目时,只能选择项目支持的最低SDK版本号,而无法选择当前编译使用的版本号,如图1所示。

2023-04-21 14:46:04 4184

原创 制作sd卡启动盘

sdb sdb1 sdb2 sdb3 sdb4 sdb5 //如果sdb只有3个分区可以再分两个区:sdb4,sdb5。2》创建挂载点,将/dev/sdb4分区挂载到挂载点,并将内核镜像uImage和设备树文件拷贝到挂载点中。2》将/dev/sdb5分区重新挂载到挂载点testdir,并将文件系统中所有文件拷贝到挂载点中。//然后卸载:peter@ubuntu:~$ sudo umount testdir。3,将文件系统放到/dev/sdb5分区。

2022-09-20 12:39:36 591

原创 结构体中的位域

位域(位段) 1,概念: 所谓"位域"是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。本质上是一种结构类型, 不过其成员是按二进位分配的。 每个域有一个域名,在程序中可以按域名访问对应的二进制区域。 位域可以把几个不同的对象用一个字节的二进制位域来表示。 位域成员应该声明为int、unsigned int或signed int类型(short char long)。 2,定义格式 struct <位域标签名>{ ...

2020-09-11 17:53:40 2330

原创 如何在linux内核中创建自己的总线

创建一条总线,首先是描述总线的结构,接着是注册总线,注销总线。总线设备,如:usb总线,上面会有很多类型的usb的驱动,如:鼠标,键盘等,当我们插入一个usb设备时,usb总线会把每个驱动遍历一遍,找到相应的驱动程序执行。在linux内核中,总线由:struct bus_type表示,定义在 <linux/device.h> struct bus_type { ...

2020-03-31 13:26:16 603

转载 在设备树里描述platform_device

在设备树的dts文件里,带有compatible属性的节点就是表示一个platform_device.在设备树里增加一个设备,则在内核里的dts文件里描述设备节点即可. 在H5方案里,则在arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts文件里。 如在dts文件里加入以下内容:mynodes@77885566 { /* 则创建出来...

2020-03-13 17:21:58 1311

转载 设备树的引入与体验(基于Linux 4.19)

第01节_字符设备的三种写法怎么写驱动?① 看原理图:a. 确定引脚;b. 看芯片手册,确定如何操作引脚;② 写驱动程序:驱动程序起封装作用③ 写测试程序;如下原理图,VCC经过一个限流电阻到达LED的一端,再通向芯片的引脚上。当芯片引脚输出低电平时,电流从高电平流向低电平,LED灯点亮;当芯片引脚输出高电平时,没有电势差,没有电流流过,LED灯不亮;从原理...

2020-03-13 17:10:49 575

转载 设备树对platform平台设备驱动带来的变化(史上最强分析)【转】

最初我们学习设备树的时候,第一个例子是按键中断,其采用了设备树的方式。我们以此为例分析设备树引入对platform平台驱动的改变。tiny4412学习(四)之移植Linux-设备树(1)设备树基础知识及GPIO中断:http://blog.csdn.net/fengyuwuzu0519/article/details/74177978一、改变与不变(1)platform_driver的...

2020-03-13 16:29:01 437

转载 字符设备驱动三种开发方式对比

一、字符设备驱动程序的三种 1 驱动程序编写有3种方法:传统方法、使用总线设备驱动模型、使用设备树 这3种方法也核心都是一样的: 分配、设置、注册 file_operations结构体这个结构体中有.open, .read, .write, .ioctl等成员驱动程序要实现这些成员,在这些成员函数中操作硬件这3种方法的差别在于:如何指定硬件资源,比...

2019-12-27 16:47:02 390

原创 解决开发板中加载驱动后,不能在/dev下自动创建设备节点问题

在制作linux根文件系统时,会创建/etc/init.d/rcS文件,如下:#!/bin/shecho "----------myrootfs start-------------------"/bin/mount -a/sbin/dev -secho "----------myrootfs end-------------------"每次开机,都会执行上面脚本文件,其...

2019-09-05 08:34:21 6117

原创 解决开发板ping不通外网的问题

使用nfs挂载文件系统之后,在开发板中可以ping通局域网,但是ping不通 外网,这是需要设置路由网关和dns,具体如下:1,设置默认路由:/sbin/route add default gw 192.168.7.1 2 ,查看路由信息 3 ,设置dns ------具体根据当地dns地址设置 :echo nameserver 202.9...

2019-09-03 13:54:24 2668

原创 如何将自己写的驱动编译进linux内核镜像中------补充

在上一篇中我分别将led驱动和button驱动加入到内核源码,并编译进内核镜像中,两个驱动源码分别存放在drivers/myled 和drivers/mykey中,本篇中,给大家补充一下,我们在存放驱动源码时,也可以将自己写的源码统一创建一个目录来保存,这样更加便于管理,比如:可以在linux内核源码目录drivers/ 中创建我们自己的驱动目录: mydrvs 然后将...

2019-04-17 10:13:51 3059 1

原创 如何将自己写的驱动编译进linux内核镜像中

大家在做驱动开发时,通常都是将驱动源码编译为.ok文件,然后通过insmod 加载进系统中,那么如何能够实现在编译linux内核源码时,同时将驱动源码一同编译进镜像中呢?下面给出具体的方法和步骤1,在Linux内核源码的drivers目录下创建自己的驱动源码目录,这里我同时加入两个驱动,分别是:led, button, 所以创建两个目录分别存放这两个驱动源码 2,...

2019-04-17 09:51:49 3766 1

原创 Windows访问samba共享时,提示:“你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问”

此问题需要修改Win10 网络策略按window+R键输入gpedit.msc 来启动本地组策略编辑器,如下:依次找到“计算机配置-管理模板-网络-Lanman工作站”这个节点,在右侧内容区可以看到“启用不安全的来宾登录”这一条策略设置。状态是“未配置”,如下:双击“启用不安全的来宾登录”这一条策略设置,将其状态修改为“已启用”并单击确定按钮。设置完成如下:再次尝试访问发现可...

2019-03-26 15:20:36 9970 4

原创 ubuntu12.04设置字符界面启动

      ubuntu系统默认一般都是图形界面启动,输入用户名和密码登录,图形界面比较耗内存,有时候你可能会觉得系统比较卡,此时课时设置默认字符界面启动,具体方法如下:第一步:打开文件:/etc/default/grub    第二步:修改下面红色框中的内容:   第三步:重启系统即可进入字符界面:sudo reboot    ,如下:     如果需要从字符界面切换...

2018-11-14 18:01:42 341 1

原创 查看并清除ubuntu缓存大小

在Documentation/sysctl/vm.txt中有如下描述:drop_caches:Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.To free pagecache:e...

2018-11-14 16:32:33 7508

转载 linux内核裁剪

Linux内核裁减 (1)安装新内核: i)将新内核copy到/usr/src下, #tar xzvf linux-2.6.38.4.tar.gz -----解压缩. ii) 将名为linux的符号链接删掉,这是旧版本内核的符号链接. #ln -s linux-2.6.38.4 linux ------建立linux-2.6.38.4的符号链接linux. (2)设置内核. # cd /u

2017-04-25 09:58:41 1319

原创 如何将写好的驱动程序编译进内核

以按键驱动为例,驱动源代码为buttons_drv.c1、进入目录linux-kernel-samsung-dev\drivers\char            新建目录key_arm,并将驱动程拷贝进去            mkdir key_drv    2、在key_arm目录里编写里Kconfig文件,内容如下:            menu "button dr

2017-04-24 15:23:46 4220

原创 内核编译过程:linux-3.0.8

该内核是在s5pv210上跑的1、解压linux-3.0.8,并修改Makefile        vi Makefile +195                     195 ARCH            ?= arm             196 CROSS_COMPILE   ?= arm-none-linux-gnueabi-2、选择soc        m

2017-04-24 14:37:53 3607

原创 C语言中的typedef新解

很多朋友在用C语言做项目过程中都遇到过一些比较特殊的数据类型,比如:uint32_tpid_t    pthread_t等。在C的标准语法中并没有给出这样的基本类型,那么这些类型是怎么来的呢,用相关工具去跟踪源码会发现,这些类型其实是通过关键字typedef定义的,那么typedef的功能是什么,又是如何定义类型的呢?下面就给大家介绍一下本人的见解。首先,typedef关键字主要是用来

2017-03-20 18:04:27 403

原创 ubuntu16.04 英文环境安装中文输入法

1. 安装语言包System Settings–>Language Support–>Install/Remove Languages选中chinese,点击Apply应用即可,等待下载安装完成。2.安装ibus框架 sudo apt-get install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4  启动ibus框架:

2016-12-02 15:14:13 3268

原创 关于数值交换的几种方法

在大量的开发中常常会遇到需要交换两个数值的问题,今天就给大家分享一些数值交换方面的方法:第一种方法:这也是大家最容易想到的方法,即利用中间变量达到交换两个数的目的,具体如下:int tmp;     tmp = i1;     i1 = i2;     i2 = tmp;这种方法执行效率是最低了第二种方法:利用数学中的运算技巧:i1 = i1 +

2016-10-19 10:55:39 494

原创 关于ncurses库获取键盘方向键

作为ncurses库的一个简单的应用例子,下面给出利用ncurses库函数获取键盘方向键的代码实例:#include #include #if 0#define KEY_DOWN 0402/* down-arrow key */#define KEY_UP 0403/* up-arrow key */#define KEY_LEFT 0404/* l

2016-09-09 16:20:51 3436

转载 Ncurses 命令行图形库

Ncurses是一个能提供功能键定义(快捷键),屏幕绘制以及基于文本终端的图形互动功能的动态库  您希望您的程序有一个彩色的界面吗?Ncurses是一个能提供基于文本终端窗口功能的动态库. Ncurses可以:只要您喜欢,您可以使用整个屏幕创建和管理一个窗口使用8种不同的彩色为您的程序提供鼠标支持使用键盘上的功能键Ncurses可以在任何遵循ANSI/POSIX标准

2016-09-07 17:23:35 5276

原创 ubuntu下修改用户名

网上看到很多朋友发帖,寻求修改用户名的方法,今天跟大家分享一下我个人一些经验:比如:现在有一个用户名为user的用户,要修改名字为peterubuntu用户名修改可以通过一下四个步骤:第一步:打开文件:/etc/passwd,找到user这一行user:x:1001:1001:user,,,:/home/user:/bin/bash将user全部改成peter第二步:打开文

2016-03-14 17:30:22 743

转载 Linux下声卡编程(录制音频文件)

将音频文件写入声卡的设备文件中可以实现音频文件的播放。而使用read函数来读取声卡设备文件中的内容,则可以实现录音功能。下面的程序代码实现了在Linux系统下使用声卡设备的录音功能。     具体代码如下://p6.8.c声卡录音功能#include#include#include#include#include#include#include/

2016-01-06 14:54:43 2965

原创 ncurses中的颜色

让我们通过以下程序来了解一下颜色系统:一个简单的颜色使用例子#include void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string);int main(int argc, char *argv[]){initscr(); /*启动curses 模式*/if(ha

2015-11-11 16:10:08 2134

原创 窗口机制

窗口(Window)机制是整个curses 系统的核心。通过前面的例子我们看到了基于“标准窗口”(stdscr)的一些操作函数。即使设计一个最简单的图形用户界面(GUI),都需要用到窗口。你可能需要将屏幕分成几个部分并分别处理,然而,将屏幕拆分成各个窗口,然后独立处理每个窗口是比较高效的方法。使用窗口的另外一个重要原因是:你应当始终在你的程序中追求一种更好的、更易于管理的设计方式。

2015-11-11 16:05:22 940

原创 ncurses中输出函数的修饰

我们已经通过一些例子看到了文字修饰(Attributes)的效果。给某些文字加上修饰会使文字更加醒目和美观。在某些程度上也会增加输出信息的可读性。下面这个程序将会把一个C语言的源程序文件的注释部分用粗体(BOLD)输出。一个简单的文字修饰的例子:#include int main(int argc, char *argv[]){int ch, prev;FILE *

2015-11-11 15:11:49 1101

原创 ncurses中的输入函数

如果你的程序只有输出而没有输入,那是非常单调的。让我们来看看处理用户输入的函数。输入函数也被分为三种:1. getch ()系列:读取一个字符的一类函数。2. scanw()系列:按照格式化读取输入的一类函数。3. getstr()系列:读取字符串的一类函数。getch()系列函数这个函数用于从键盘读入一个字符。但是在使用它的时候需要考虑一些微妙的情况:例如你没有事先调

2015-11-11 14:27:16 1528

原创 ncurses中的输出函数

在curses 函数中有三类输出函数,它们分别是:1. addch()系列:将单一的字符打印到屏幕上,可以附加字符修饰参数的一类函数。2. printw()系列:和printf()一样的具有格式化输出的一类函数。3. addstr()系列:打印字符串的一类函数。这几类函数可以交替使用。关键是要了解各类函数的具体应用环境。让我们来看看这些函数。 addch()系列函数addc

2015-11-11 11:24:23 1303

原创 ncurses的初始化

我们现在知道在程序中调用initscr()函数,屏幕就会初始化并进入curses 模式。本章我们会介绍其它的初始化函数,这些函数可以根据我们自己的要求在初始化后定制curses 会话(curses session)的功能及模式。例如:终端模式(terminal mode)、彩色显示模式(colormode)、鼠标操作模式(mouse mode)等。当然,我们还可以定制混合模式。这章就让

2015-11-11 11:13:59 797

原创 从Hello World 程序开始

欢迎来到ncurses 的世界。在我们踏上学习ncurses 的路途之前,让我们先写一个小程序,来了解一下应用ncurses 库所编写程序的结构。编译包含NCURSES 库函数的程序如果要调用ncurses 库中的函数,你必须在代码中加载ncurses.h 文件,就是要在C 或C++程序开头添加“#include ”,然后在链接时标记-lncurses参数。如果ncurses

2015-11-11 10:42:15 1284

转载 安装vmare-tools

这里主要解决的问题是如实现linux系统与windows系统之间能够方便快捷的实现复制粘贴,就像ctrl+c 与ctrl+v一样方便。    1、一定要先安装 build-essential软件,否则不能够顺利安装      $ sudo apt-get install build-essential    2、要安装linux-header

2015-08-31 15:46:47 397

转载 sqlite入门基础(二):sqlite3_get_table,sqlite3_free_table

上一篇介绍的sqlite3_exec 是使用回调来执行对select结果的操作。还有一个方法可以直接查询而不需要回调。但是,我个人感觉还是回调好,因为代码可以更加整齐,只不过用回调很麻烦,你得声明一个函数,如果这个函数是类成员函数,你还不得不把它声明成static的(要问为什么?这又是C++基础了。C++成员函数实际上隐藏了一个参数:this,C++调用类的成员函数的时候,隐含把类指针当成函数的第

2015-08-27 10:08:45 521

转载 sqlite入门基础(一):sqlite3_open,sqlite3_exec,slite3_close

打开数据库链接sqlite3_open用法原型:int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */);用这个函数开始数据库操作。需要传入两个参数,一是数据库文件名

2015-08-27 10:06:28 326

转载 linux下json库的编译及例程

从(http://jsoncpp.sourceforge.net/)下载源码包“jsoncpp-src-0.5.0.tar.gz”,解压后在其解压后目录中运行$ scons platform=linux-gcc  编译出来的库文件在其libs/ linux-gcc-4.4.2目录下,有libjson_linux-gcc-4.4.2_libmt.so和libjson_linux-gcc-4.

2015-08-24 14:01:35 1195 1

转载 用C语言进行CGI程序设计

用C语言进行CGI程序设计 一、CGI概述    CGI(公用网关接口)规定了Web服务器调用其他可执行程序(CGI程 序)的接口协议标准。Web服务器通过调用CGI程序实现和Web浏览器的交互,也就是CGI程序接受Web浏览器发送给Web服务器的信息,进行处理,将响应结果再回送给Web服务器及Web浏览器。CGI程序一般完成Web网页中表单(Form)数据的处理、数据库查询和实现与传

2015-08-24 13:50:49 443 1

转载 jsonc库使用

jsonc库使用作者:wangkangluo1 | 出处:博客园 | 2011/12/15 15:12:28 | 阅读58次原文地址: 1: 下载json-c库源码文件json-c-0.9.tar.gz2: 编译3: json-c常用函数(1): 将一个json文件转换成object对象: struct json_object* js

2015-08-24 13:46:48 694

转载 c语言解析json数据

我使用的是cJSON:http://sourceforge.net/projects/cjson/ 先看json的数据结构 c中没有对象,所以json数据是采用链表存储的 C代码  typedef struct cJSON {      struct cJSON *next,*prev;   // 数组 对象数据中用到      struct c

2015-08-24 13:45:30 1680

viPlugin_2.11.0插件及破解方法

eclipse下的一个vi插件,挺好用的,熟悉vi操作用起来非常带劲

2014-01-16

空空如也

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

TA关注的人

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