自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 Makefile基础

1.Makefile要素执行make时会自动根据 依赖项 使用 规则 生成 目标,也可通过 make + 目标名指定需要生成的目标。目标:依赖 规则例:src := $(wildcard ./src/*.c)obj := $(patsubst ./bin/%.o, %.c, $(src))target:$(obj) gcc $(CFLAGS) $(LDFLAGS) $^ -o $@%.o:%.c gcc -c $(CPPFLAGS) $< -o $@ .PHONY:clean

2021-03-24 16:54:34 80

原创 gdb调试基础

1.GDB使用(1)编译时采用-g参数。(2)gdb +可执行文件。(3)core文件解析:gdb + 可执行文件 + core文件(ubuntu core文件生成 执行前运行unlimit -c unlimited设置core文件大小无限制,另对于段错误,gdb运行程序,直接执行,程序停止的位置即为段错误导致的地方)(4)显示程序源码:l(list) 显示默认10行l(list)+ 函数名l(list)+ 文件名:函数名(5)程序运行r(run) 运行直到遇到断点

2021-03-24 16:25:37 121

原创 gcc编译基础

1.源程序编译过程:预处理:头文件展开,宏替换,删除注释编译:c文件编译成汇编文件汇编:将汇编程序编译成机器码链接:将函数库中相应代码组合到目标文件中2.gcc参数预处理:gcc -E *.c -o *.i编译:gcc -S *.i -o *.s汇编:gcc -c *.s -o *.o链接:gcc *.o -o *.elf头文件目录指定-------- -I+path编译过程中指定宏------ -D + name程序优化----------- -O -O2 -O3输出警告

2021-03-22 21:46:08 108 2

原创 leetcode:二叉树层序遍历(C实现,递归与非递归)

1.递归法int depth(struct TreeNode *root){ int ld=0,rd=0; if(root) { ld=depth(root->left)+1; rd=depth(root->right)+1; } return ld>=rd?ld:rd;}void level_ord...

2020-03-14 14:11:26 460

原创 leetcode:栈排序(使栈顶为最小的值)

思路:1.使用双向链表进行栈的模拟。2.每次入栈都与当前栈中元素按栈顶依次进行比较,然后插入到合适的位置。typedef struct{ int val; struct Node *next; struct Node *previous;}Node;typedef struct { Node *head; Node *current;//指向...

2020-03-12 21:15:15 305

原创 用户层与驱动间的数据传输---copy_to_user和copy_from_user

内核数据传入应用:int copy_to_user(void __user *to, const void *from, int n);/**to是内核空间的指针,*from是用户空间指针,*n表示从用户空间想内核空间拷贝数据的字节数。如果成功执行拷贝操作,则返回0,否则返回还没有完成拷贝的字节数。**/应用数据传入内核:int copy_from_user(void *to, c...

2020-02-23 10:28:44 394

原创 linux驱动学习------创建杂项设备和字符设备(基于iTop4412开发板)

设备节点被创建在/dev下,是连接内核与用户层的枢纽,用户层通过open等操作实现对驱动的交互(具体通过设备号与对应驱动的设备建立联系)。Linux下的设备通常分为三类,字符设备,块设备和网络设备。我们常用的主要是字符设备.查看设备号:cat /proc/devices查看杂项设备:cat /proc/misc生成字符设备有两种方法:1.注册杂项设备注册函数:int misc...

2020-02-22 18:39:19 347

原创 设备树相关知识

1.设备树设备树是一种描述硬件资源的数据结构,它通过bootloader将硬件资源传给内核,使得内核和硬件资源描述相对独立。 Device Tree可以描述的信息包括CPU的数量和类别、内存基地址和大小、总线和桥、外设连接、中断控制器和中断使用情况、GPIO控制器和GPIO使用情况、Clock控制器和Clock使用情况。 另外,设备树对于可热插拔的设备不进行具体描述,它只描...

2020-02-22 09:29:03 159

原创 linux驱动学习-----平台总线(platform bus)

平台总线是一种虚拟总线,相对于SPI,IIC,USB等实际物理总线,平台总线为其他没有标准总线的设备挂载提供了条件,另外平台总线的引入也在当驱动更换平台时提供了方便(只需要修改对应的平台的设备资源配置即可)。两个重要的结构体:platform_device,platform_driver驱动编写流程:1.注册设备(修改平台文件kconfig并配置进内核,测试时可手动注册设备,通过查看 /s...

2020-02-21 21:51:06 256

原创 Ubuntu下利用GDB定位段错误位置

1.允许生成core文件ulimit -c unlimited2.执行你需要执行的程序,若出现段错误,会在当前路径下生成core文件。3.利用gdb和core文件进行调试,程序会停在出现段错误的地方gdb ./program ./core4.可用where查看详细信息...

2020-02-12 08:17:59 368

原创 ALSA record PCM

#include <stdio.h>#include <stdlib.h>#include <sys/stat.h>#include <alsa/asoundlib.h>#define PCM_FORMAT SND_PCM_FORMAT_S16_LE#define CHANNEL 1#define SAMPLE_RATE 16000...

2020-02-10 18:00:46 369

原创 alsa播放pcm音频

调用alsa库实现pcm音频的简单播放:#include <stdio.h>#include <stdlib.h>#include <alsa/asoundlib.h>#define PCM_FORMAT SND_PCM_FORMAT_S16_LE#define CHANNEL 1#define SAMPLE_RATE 16000int mai...

2020-02-07 12:05:06 1999 2

原创 ALSA编程

ALSA编程学习(翻译自ALSA Programming HOWTO)1.ALSA音频知识点转载自:https://blog.csdn.net/jkan2001/article/details/52985329?utm_source=blogkpcl8声音是连续模拟量,计算机将它离散化之后用数字表示,主要有以下的一些术语。1 样本长度(sample):样本是记录音频数据最基本的单位,计算机...

2020-02-01 12:36:56 566

voice_assistant.tar.gz

通过调用迅飞的语音识别以及语音生成接口,实现与图灵机器人的语音对话。

2020-02-13

空空如也

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

TA关注的人

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