自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

luckywang1103的专栏

慢一些脚步,多一点思考!

  • 博客(429)
  • 资源 (44)
  • 收藏
  • 关注

原创 gdb

调试带参数程序gdb xxx进入调试界面后 set args 可指定运行时参数 (如set args -l) show args 可查看设置好的运行参数 path <dir> 可设定程序的运行路径 show paths 查看程序的运行路径 set env varname [=value] 设置环境变量 show env 查看环境变量...

2018-08-22 09:35:25 465

原创 git

git commitgit commit -s 提交的信息中带有signed-off-by: git loggit log filename/dir 查看某个文件/目录的历史git log –stat 显示当前commit在上一次commit基础上修改了哪些文件及行数等信息。git log -p 显示当前commit在上一次commit基础上修改的文件的内容git log –pretty=o

2017-07-15 11:16:41 460

原创 gcc

gcc生成静态链接库gcc -c file1.c gcc -c file2.c ar crv my_library.a file1.o file2.o 注意,用gcc链接静态库的时候,-l要放在xxx.c后面 -I -l -L 系统头文件路径是:/usr/include,如果引用的头文件不在系统路径下,那么需要用-Ipath来指明头文件的目录。 静态链接库的系统路径是:/lib, ...

2016-01-04 20:59:44 916

原创 vim+ctags+cscope安装与使用总结(不断补充中)

ctags1、安装ctags1) sudo apt-get install ctags 或者2) 在http://ctags.sourceforge.net/ 下载源代码包之后,解压缩生成源代码目录进入源代码目录执行./configure & make & make install2、vim中ctags简单使用详细的使用ctags用法,在vim...

2015-03-10 22:02:13 25225

原创 C语言小知识点总结

宏1、可变参数宏...和__VA_ARGS___VA_ARGS_是一个可变参数的宏,是新的c99规范中新增的,目前似乎只有gcc支持(VC6.0不支持)宏定义中参数列表的最后一个参数为省略号(也就是3个点),这样预定义宏__VA_ARGS_就可以用在替换部分中,替换省略号所代表的字符串。比如define PR(...) printf(__VA_ARGS_)int main()...

2015-03-09 17:35:34 1186

原创 sysctl

sysctl命令用于运行时配置内核参数,这些参数位于/proc/sys/目录,可以使用sysctl修改系统变量,也可以通过编辑/etc/sysctl.conf文件来修改系统变量。sysctl(选项)(参数)选项-n:打印值时不打印关键字;-e:忽略未知关键字错误;-N:仅打印名称;-w:当改变sysctl设置时使用此项;-p:从配置文件“/etc/sysctl.conf”加载内核参...

2020-03-28 22:22:10 786

原创 CONFIG_KALLSYMS_ALL

内核配置在2.6内核中,为了更好地调试内核,引入了kallsyms。kallsyms抽取了内核用到的所有函数地址(全局的、静态的)和非栈数据变量地址,生成一个数据块,作为只读数据链接进kernel image,相当于内核中存了一个System.map。CONFIG_KALLSYMS=y 符号表中包含所有的函数CONFIG_KALLSYMS_ALL=y 符号表中包括所有的变量(包括没有用E...

2020-01-24 16:35:05 3282

原创 DMA(四) - DMA_API_DEBUG

DMA_API_DEBUG为了debug驱动程序及发现使用DMA-API时的bug,检测代码可以编译到kernel中,它们可以告诉开发 者那些违规行为。如果你的体系结构支持,你可以选择编译选项“Enable debugging of DMA-API usage”,使能这个选项会影响系统性能,所以请勿在产品内核中加入该选项。...

2020-01-23 10:34:47 759

转载 结构体的最后定义一个大小为0 的数组

有很多结构体的最后都定义了一个大小为0 的数组,如drivers/oprofile/cpu_buffer.h中struct op_sample { unsigned long eip; unsigned long event; unsigned long data[0];};结构体最后的长度为0的数组是GCC中广泛使用技巧,常用来构成可变长缓...

2020-01-22 20:53:22 2427

原创 链接脚本

void foo(void) attribute((section(".in_name")));void bar(void) attribute((section(".in_name")));.out_name{*(.in_name)}这样就把foor(), bar()这两个函数给放在了最终elf文件里的.out_name这个section。从宏观上来看下这个链接脚本SECTI...

2020-01-21 18:02:58 294

原创 linux自旋锁spin_lock

spin_lock与spin_lock_irq与spin_lock_irqsavespin_lock与spin_lock_irq两者只有一个差别:是否调用local_irq_disable()函数, 即是否禁止本地中断。spin_lock比spin_lock_irq速度快,但是它并不是任何情况下都是安全的。在任何情况下使用spin_lock_irq都是安全的。因为它既禁止本地中断,又禁止内核抢...

2019-12-28 14:56:47 396

原创 systemctl

systemctl是一个systemd工具,Systemd是一个系统管理守护进程、工具和库的集合systemd作为父守护进程运行(PID = 1)查看systemd版本systemd --version查看systemd和systemctl的二进制文件和库的安装位置whereis systemdwhereis systemctl分析systemd启动过程systemd-analyz...

2019-11-23 12:43:14 465

原创 内核current指针

current指针current其实一个struct task_struct指针,指向当前进程struct task_struct *task又是struct thread_info的一个成员变量。thread_info可以从sp寄存器得到//linux-imx/include/asm-generic/current.h#define get_current() (current_thr...

2019-11-23 11:18:11 2210 3

原创 字节对齐

字节对齐单位a. linux 32位默认4字节对齐,64位默认8字节对齐b. 结构体最大成员(基本数据类型)c. 预编译指令 #pragma pack(n)手动设置,n-只能填1 2 4 8 16上面三者取最小的,就是实际对齐单位结构体的整体大小必须为实际对齐单位的整数倍#include <stdio.h>int main(){ //8 bytes ...

2019-11-10 19:03:34 175

原创 UAC

Bus 003 Device 019: ID 0d8c:0132 C-Media Electronics, Inc. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined ...

2019-08-30 14:07:05 519

原创 MFC动态链接库创建与调用

在MFC中生成DLL在头文件中extern "C" _declspec(dllexport) int Min1(int x,int y,int z);在实现文件中 /*找出x,y,z中的最小整数*/extern "C" __declspec(dllexport) int Min1(int x,int y,int z){ if ((x<=y) & (x<=z)) r...

2019-07-14 11:28:42 682

原创 /proc/interrupts

/proc/interrupts中的字段依次是逻辑中断号、中断在各CPU上发生的次数,中断所属父设备名称、硬件中断号、中断触发方式(电平或边沿)、中断名称/proc/interrupts的具体实现查看代码kernel/irq/proc.c中函数show_interrupts![在这里插入图片描述](https://img-blog.csdnimg.cn/20190610133258453.pn...

2019-06-10 13:47:01 12023 5

原创 insmod/lsmod/modinfo/modprobe/depmod工具使用

insmod一个模块的时候出现问题: Invalid module format通过modinfo查看模块信息,发现模块的vermagic与内核的版本是不匹配的。第一种解决办法是使用目标板子上所有的内核重新编译模块第二种办法是insmod -f xxx.ko或者insmod --force-vermagic xxx.ko (但是当前的insmod好像不支持这些参数)...

2019-06-10 11:02:55 1402

原创 蓝牙

Beaconibeacon是由苹果公司在2013年推出的,其初衷是解决室内定位的问题。利用低功耗的BLE多点定位来解决室内(大型商场、停车场、医院等)定位的问题也就理所应当了。ibeacon基于BLE的广播,而BLE广播限定数据长度不能超过31 Bytes。ibeacon将广播包的长度固定为30 Bytes。这30个Bytes分为两个AD structure(这是BLE广播数据的一种组织形式...

2019-04-15 15:14:00 1061

转载 IEC60958和IEC61937

BMC编码IEC 60958在传输数据时使用双相符号编码(Biphase Mark Code),简称BMC,属于一种相位调制(phase modulation)的编码方法,是将时钟讯号和数据讯号混合在一起传输的编码方法。下图是BMC的示意图:在BMC编码中,时钟信号的频率是数据传输bitrate的两倍。当数据信号是高电平1时,BMC跳变。当数据信号是低电平0时,BMC不跳变。然后两个数据信号...

2019-03-29 11:08:02 8372 1

转载 smbus与i2c区别

The I²C bus and the smbus are popular 2-wire buses that are essentially compatible with each other.运行频率先以运作频率来说,I2C此方面相当宽裕,最低频可至0Hz(直流状态,等於时间暂停),高可至100kHz(Standard Mode)、400kHz(Fast Mode)、乃至3.4MHz(H...

2019-02-16 15:20:17 7285 1

原创 eMMC mmcblk0boot0

mmcblk0boot0 is a hardware-defined partition in the eMMC distinct from the mmcblk0pN partitions that are defined by the MBR partition table in the “user area”. U-Boot (if you’re using a version that s...

2019-02-16 15:06:25 7903

转载 tiny_tty驱动

LDD3这本书的最后一章TTY驱动中有介绍了一个简单的tty驱动的sample /* * Tiny TTY driver * * Copyright (C) 2002-2004 Greg Kroah-Hartman ([email protected]) * * This program is free software; you can ...

2019-01-25 16:22:20 1480

原创 linux进程的interruptible sleep状态和uninterruptible sleep状态

linux进程有两种sleep状态,一种是interruptible sleep,处在这种状态的进程是可以接收外部信号的,cat /proc/xxx/statusName: sysmgtState: S (sleeping)另一种是uninterruptible sleep,处在这种状态的进程不接收外来的任何信号,所以用kill -9也杀不掉这种进程。cat /proc/xxx/sta...

2019-01-25 10:11:20 4602

转载 RZ,NRZ,NRZI、曼彻斯特编码

在数字电路中,组成一连串信息的基元就是0和1,无论是在CPU、DSP、MCU甚至是个数字计数器中,数字电路在其中能够处理的信息也只有0和1,而对于任何外界的信息,计算机都能通过两个量来描述,那就是0和1。而对于数字通信来说,想要用0和1来传递你想传达的信息,则必须要通过一种特殊的约定来进行同步,这种约定就是编码。两台设备要想进行有线通信,最终都是将想要传达的信息转变成一串比特流,进而在传输线上进行...

2019-01-24 15:13:51 5632 1

转载 AMBA总线

AMBA 1:只有ASB和APB协议;AMBA 2:引入AHB协议用于高速数据传输;AMBA 3:为适应高吞吐量传输和调试引入AXI和ATB,增加高级可扩展接口,而AHB协议缩减为AHB-lite,APB协议增加了PREADY和PSLVERR,ASB由于设计复杂而不再使用;AMBA 4:AXI得到了增强,引入QOS和long burst的支持,根据应用不同可选AXI4,AXI4-lite,A...

2019-01-11 10:59:28 2503

原创 PCI子系统(三)- PCI设备驱动

这里拿linux/drivers/leds/leds-ss4200.c来做模板参考学习注册struct pci_driverstatic struct pci_driver nas_gpio_pci_driver = { .name = KBUILD_MODNAME, .id_table = ich7_lpc_pci_id, .probe = ...

2019-01-07 10:57:03 1501 3

原创 PCI子系统(二)- pci controller driver

访问PCIe配置空间通过8位,16位,32位的数据传输访问配置空间,where是从配置空间起始位置计算的字节偏移量。static inline int pci_read_config_byte(const struct pci_dev *dev, int where, u8 *val)static inline int pci_read_config_word(const struct pc...

2019-01-06 16:36:05 1281

原创 PCI子系统(一) - 协议

协议来自PCI Express Base Specification Revision 3.07.5 PCI compatible configuration register这是type 0型的头部结构,一般用于PCI设备,还有个type 1型的头部结构,用于PCI桥。7.7 MSI and MSI-X Capability structuresMSI(Message Signale...

2019-01-06 16:22:12 952

转载 HDMI - 概念初识

2HDMI接口HDMI(High Definition Multimedia Interface)传输接口,可以实现数字音频、视屏格式的高清传输。目前已经支持高达4K,甚至8K分辨率的图像传输。HDMI视屏和音频信号传输通道采用了的TMDS(Time Minimized Differential Signal)最小化差分信号传输。是一种差分信号传输方式。以上是HDMI的信号框图,对应到实际的电...

2019-01-03 14:55:32 1153

转载 device wakeup system

通过设备可以将系统唤醒,比如gpio电源按键能够将系统唤醒。device wakeup相关的API /* include/linux/pm_wakeup.h */ device_init_wakeup(struct device *dev, bool val); // 初始化设备能不能唤醒系统,并且使用这个功能 device_may_wakeup // 判断设备设备能不能够别唤醒,并且...

2018-12-26 10:14:23 612

转载 win10 turn on/off usb device selective suspend

Keyboard or mouse not working after your PC wake up from sleep? When you’re charging your phone through an USB port, putting your PC into sleep mode will turn off the power to USB ports, and your phon...

2018-12-20 19:03:47 4075

原创 PCM与DSD

PCM调制方式脉冲编码调制(Pulse Code Modulation)脉冲编码调制对模拟信号先采样,再对采样幅值量化,编码编码方式不编码DPCM(Differential Pulse Code Modulation) 差分脉冲编码调制APCM(Adaptive Pulse Code Modulation) 自适应脉冲编码调制ADPCM(Adaptive Differential...

2018-12-03 18:22:51 5257

转载 ubuntu 64位 安装 ia32-libs

sudo apt-get install g++-multilibsudo apt-get install libncurses5:i386sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386作者:hackerwin7来源:CSDN原文:https:...

2018-11-19 15:18:47 2457 5

转载 Android设置软件开机自启动

背景知识:当Android启动时,会发出一个系统广播,内容为ACTION_BOOT_COMPLETED,它的字符串常量表示为 android.intent.action.BOOT_COMPLETED。只要在程序中“捕捉”到这个消息,再启动之即可。首先在清单文件的manifest的节点下配置权限&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt...

2018-11-19 14:56:55 5766

原创 audio_policy_configure.xml

关于audio_policy_configuration.xml文件的说明&amp;lt;!-- Modules section: There is one section per audio HW module present on the platform. Each module section will contains two mandatory tags fo...

2018-11-18 15:12:17 995

原创 linux display子系统的代码分层架构

这里display子系统的是典型的驱动分层模型,上层是framebuffer的操作,涉及到的核心的结构体是struct fb_info,下层是display controller的操作,涉及到的核心的结构体是struct mxcdrv_driver...

2018-10-11 15:01:50 1191

原创 进程,线程,内核设置cpu亲和性

进程与cpu绑定sched_setaffinity可以将某个进程绑定到一个特定的CPU。SCHED_SETAFFINITY(2) Linux Programmer's Manual ...

2018-09-18 16:50:19 3598

原创 nfs文件系统配置

no_root_squash与root_squash区别no_root_squash:当登录NFS主机使用共享目录的使用者是root时,那么对于这个分享的目录来说,他就具有 root 的权限!这个项目『极不安全』,不建议使用! root_squash;如果登录NFS主机使用共享目录的使用者是root,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nob...

2018-08-22 10:59:09 291

转载 情绪管理

当向听众解释压力管理的时候,讲师拿起一杯水问道:这杯水有多重?20克到500克众说纷纭。 讲师回答说:实际有多重并不重要,这要看我拿着它的时间。一分钟,没有问题。如果一个小时呢,我的右臂就会疼痛。再进一步,一天,你应该给我叫救护车了。当然每种情况下杯子的重量是相同的,但是我拿的越久,它就显得越沉。 他继续说道:这就像压力管理,如果总是怀揣沉重的负担,随着压力越来越大,迟早我们会崩溃掉。 ...

2018-08-21 16:51:21 293

androidJNI例子

从这个简单的例子学习android JNI是如何做的

2015-07-19

嵌入式系统开发之道笔记

嵌入式系统开发之道的读书笔记 ... 2、中断分为CPU自行产生的内部中断及由外围设备产生的外部中断。 3、*(volatile unsigned char*)0x300022&=0xfd; C语言用指针取地址里面的东西 asm("xld.w %r0,0x300022"); Asm("bset [%r0],0x1"); 汇编用[]取地址里面的东西 ...

2015-05-17

alsa-utils-1.0.25_alsa-lib-1.0.25

alsa-utils-1.0.25和alsa-lib-1.0.25,具体编译方法参考http://blog.csdn.net/luckywang1103/article/details/45626201

2015-05-11

算法导论_第二版(中文+答案)_第三版(英文)

算法导论内容包括: 中文第二版PDF+答案 英文第三版PDF

2015-05-05

ldd3书本+书本源代码

包括linux设备驱动(第三版)书本和书本上对应的源代码

2015-05-05

pthread API的一些用法

主要是pthread API组成的一个简单的例子,更关键的是能够熟悉pthread_join,他能够一直阻塞整个进程直到他等待的那个线程结束才能继续执行他后面的代码。 编译使用gcc pthread.c -o pthread -pthread

2015-02-15

Protel转PADS工具

可以实现Protel PCB转PADS PCB 实现Protel原理图转PADS原理图

2013-12-19

MJPEG压缩与解压缩

实现在友善之臂平台 usb_camera.c文件:如果V4L2采集的图像是MJPEG,则解压成RGB进行LCD显示; YUV2JPEG.c文件:如果V4L2采集的图像是YUYV,则先变成RGB,再压缩为MJPEG

2013-12-13

nfs安装文件

里面有3个nfs安装所需的文件,安装方法是dpkg -i ***.deb, 安装顺序是portmap、common、kernel

2013-12-10

labview显示串口读取的心电波形

前端是单片机采集的并通过串口发送出来的波形信号,电脑端是采用labview软件制成的简单的动态描绘心电波形的图。

2013-12-09

usb_camera

用于在友善之臂嵌入式板子上跑的usb camera应用程序,从usb camera取出数据然后保存为图片文件并显示在LCD屏幕上

2013-12-05

MyDrivers驱动文件

利用基本的驱动核心理论完成了按键驱动和beep驱动

2013-11-11

mfc创建DLL

里面有创建DLL文件的例子和使用这个DLL文件的例子,用于学习

2013-10-05

MassStorageClass协议文档

MassStorageClass协议文档共4个,其中有USB BulkOnly协议、也有USB UFI协议、也有USB MassStorageClass协议

2013-09-28

CATC抓取的UFI数据

CATC仪器抓取的UFI Command的数据

2013-09-24

USB枚举失败会复位.usb

USB枚举失败会复位用CATC抓的过程中的数据,便于分析USB协议

2013-09-23

c8051f320_USB枚举过程.usb

C8051F320USB设备成功枚举,用CATC抓的过程的数据

2013-09-23

51单片机内部RAM

51单片机内部ram的分配,叙述small和large模式

2013-08-20

QT连续显示多幅图片看起来像动画

在window的qt creator平台上开发的,qt定时器的方法连续播放几幅图片看起来像动画,而且运行时外围的窗体都被透明化了,只有显示破壳而出的小鸡的动画,在你的桌面上随意拖动。

2012-12-14

51单片机控制DS18B20

51单片机控制DS18B2020的例子程序,里面还有proteus仿真的程序,你可以在这个程序的基础上扩展

2012-12-08

test1_lib_app.rar

MFC动态库的创建的代码在test1_lib的目录下,MFC动态库调用的代码在test1_app的目录下

2019-07-13

devmem tool

用于linux系统读取或者写入寄存器或者内存的值,调试驱动的时候会有帮助

2018-12-20

audio应用层播放代码

audio应用层的播放参考代码,调用alsa lib的API。内含编译和使用的Readme

2018-10-22

linux framebuffer application

使用/dev/fbx设备节点,能够读取framebuffer的信息,并且在framebuffer上显示

2018-10-12

绑定进程到指定cpu

绑定进程到特定cpu去执行,只是一个简单的例子,直接可以通过gcc编译好了在pc上运行。

2018-09-18

fft算法c语言实现

c语言实现的fft算法,代码中先做码位置换,再做蝶形运算

2018-05-16

linux控制cpu占用率

在Linux平台下通过程序控制cpu占用率,最好在空闲的机器上测试

2018-01-30

minimad.tar.gz

使用libmad的一个example,可以解码mp3文件为pcm文件,mp3文件和解码出来的pcm文件都在里面了

2018-01-05

easyBSD2.3

在网上下载的easyBSD,用于添加开机启动选项,试过挺好用的

2016-09-13

内存模拟块设备驱动程序

与ldd3第十六章块设备驱动程序相关的代码,基于3.10内核接口的实例

2016-06-27

Kbuild分析

Kbuild系统实现分析,Kconfig和Makefile语法

2016-02-16

实现内核seq操作的例子

实现内核seq的操作的例子,可以自己放到内核中编译试试

2016-02-04

内核proc文件系统的代码

调用了linux内核提供的操作proc文件系统接口的函数,一个小例子。

2016-02-03

mmap内核驱动与应用程序

里面包括 1. 一个用户空间的mmap将文件映射到内存进行操作的例子 2. 一个mmap内核驱动及对应的mmap用户空间的程序。

2016-02-02

debugfs例子程序

linux文件系统中的debugfs程序小例子

2015-12-20

dma控制器操作

使用s3c2440的DMA控制器搬运内存数据和使用cpu搬运数据

2015-09-30

dma映射函数

主要讲3个dma的函数,dma_alloc_coherent,dma_poll_create, dma_map_single使用实例

2015-09-30

dma_operation.c

使用s3c2410的公共DMA控制器来搬运内存数据和使用cpu来搬运内存数据

2015-09-30

TCT40-16超声波传感器

超声波传感器TCT40-16,由发送和接收两个构成,这个是文档介绍

2015-09-13

linux内核异步通知用户空间fasync

linux内核异步通知用户空间fasync,使用内核提供的fasync_helper和kill_fasync两个函数

2015-08-26

空空如也

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

TA关注的人

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