自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 收藏
  • 关注

原创 ALSA驱动框架分析1:简介

简介:Alsa是linux声卡的一种驱动框架,类似的还有oss,简单的说,声卡就是一块外接硬件,用来播放和录音的设备,将处理后的数据通过iis和mcu进行交互,因此,声卡需要2个部分共同作用,即mcu侧和codec侧。典型的音频设计是: 一块电路板上一颗CPU的I2S接口外挂一颗Codec芯片, Codec在外接耳机或功放等. 如下图所示以播放为例, 在这样一个硬件结构下, 涉...

2019-10-22 16:41:48 702 1

原创 lwip协议栈入门分析1

这里是正式开始写lwip入门章节的第一篇,因为自己学习的总结,那么中间涉及到的很多嵌入式方面的,如mcu、rtos、计算机基础相关的东西,我在这里就不会记录的。这里说明,所有的内容都是按照个人的理解,由于刚刚学习,所以难免有些错误的理解和概念,因此,如果以后随着学习的深入,我会再次更正错误的内容。LwIP是Light Weight (轻型)IP协议,有无操作系统的支持都可以运行。LwIP实现的...

2019-10-06 14:49:11 650

原创 lwip协议栈学习前言

准备开始接触一些物联网相关的东西,好久没来看过这个博客了,感觉都要成一块荒地了,以前乱七八糟写了一些东西,都不知道写的啥,虽然一直用有道云笔记,但感觉还是花个时间重新整理一下,然后把以前学的东西整理到这里了,为啥开始学习物联网,这里就不多说了,以前虽然有嵌入式的基础,但是还是觉得花不少时间来学习的,前段时间,抽空了解了一些物联网的东西,比如http、mqtt等物联网相关的应用协议,了解到lwip这...

2019-10-06 14:00:05 289

转载 kernel - component组件用法

component在多个模块相互关联并且存在一定的初始化顺序时非常有用。现分析下其工作原理,以便后续组织自己的驱动模块。一、component_match分析component_match在master和component匹配时用,它包含一个匹配函数指针和一个void *类型的数据指针,其结构体定义如下:struct component_match { size_t ...

2019-09-18 11:41:25 2753

原创 h文件

#ifndef CRC_8_H_#define CRC_8_H_#include "Stdafw.h"u8 get_crc8(const u8* pp_Data, u32 vp_len);u8 calc_crc8(u8 vp_crc, const u8* pp_Data, u32 vp_len);#endif #ifndef EC20_AUD_PROTOCOL_H_#defin...

2019-01-17 18:27:43 998

原创 aud_manage.c

#include "aud_manage.h"#include "crc_8.h"#include "aud_config.h"static BOOL g_aud_app_running = FALSE;static E_PROTOCOL_TYPE* g_prase_status = NULL;     //解析状态static struct t_aud_frame* g_aud...

2019-01-17 18:25:23 243

原创 aud_protocol.c

#include "aud_manage.h"#include "crc_8.h"#include "aud_config.h"/*桢字段接受处理*/static BOOL protocol_receive_frame(E_PROTOCOL_TYPE* pp_type, struct t_aud_frame* pp_aud_frame, u8 vp_c, BOOL* pp_excfram...

2019-01-17 18:24:19 181

原创 crc_8.c

#include "crc_8.h"u8 get_crc8(const u8* pp_Data, u32 vp_len){    unsigned char    i;    unsigned char  crc = 0;    while (vp_len--) {        for (i = 0x80; i != 0; i >>= 1) {            ...

2019-01-17 18:23:34 228

转载 USB的工作原理

USB的工作原理及数据包格式  一 概述 对于USB的工作我这里做个比方,主机好比一个公司,你就是USB设备,要进入公司首先要面试(枚举),你到了面试现场(第一次插入设备),面试官首先了解到你的外表,性别已经你要应聘的岗位(设备描述符),然后给你一个号,以后就开始按号叫人,当你被叫到就开始问你的专业知识,性格等(配置描述符),如果你比较合适(通过了枚举)你就会录取了,并且注册一个你的信息到公司(驱...

2019-01-04 09:39:55 5909

原创 aud_app.c

#include "aud_app.h"#include "aud_common.h"#include "aud_usr.h"static sci_ESequence g_sci_ESequence = sci_seqVoid;/*开功放*/static void aud_amp_poweron(void){#if _AUD_DEBUG AUD_TRACE("aud_a...

2018-11-16 18:00:28 199

原创 crc_8.h

#ifndef CRC_8_H_#define CRC_8_H_#include "Stdafw.h"u8 get_crc8(const u8* pp_Data, u32 vp_len);u8 calc_crc8(u8 vp_crc, const u8* pp_Data, u32 vp_len);u8 file_crc8(FILE* pp_fp, u32 vp_crc_offset);...

2018-11-09 19:54:03 225

原创 aud_timer.h

#ifndef _AUD_TIMER_H#define _AUD_TIMER_H#include "Stdafw.h"#define AUD_PLAYBLOCK 0xFFFFFFFFstruct t_time_out{ BOOL m_en; u32 m_limit_sec; u32 m_cur_sec; BOOL m_timeout_sta; void(*m_hand...

2018-11-09 19:53:32 210

原创 aud_test.h

#ifndef _TEST_H_#define _TEST_H_#include "Stdafw.h"extern BOOL recorder_test_mode;extern BOOL audio_test_mode;/*录音测试接口*/void record_test(u32 vp_size_kbyte);base_EEventResult Frm_OnRecData_t...

2018-11-09 19:52:53 184

原创 aud_media.h

#ifndef PCM_H_#define PCM_H_#include "Stdafw.h"/*音频格式*/typedef enum { MP3_FMT = 0, AMR_FMT, PCM_FMT,}E_PCM_FORMAT;/*WAV音频文件头格式*/#define ID_RIFF 0x46464952#define ID_WAVE 0x45564157#defi...

2018-11-09 19:52:18 227

原创 aud_app.h

#ifndef EC20_AUDIO_H_#define EC20_AUDIO_H_#include "Stdafw.h"#include "aud_media.h"#include "aud_test.h"/*调试打印开关*/#define _AUD_DEBUG 0/*当前应用串口*/#define USE_AUDIO_SCI sci_seqThird/*起始...

2018-11-09 19:51:40 245

原创 crc_8.c

#include "crc_8.h"u8 get_crc8(const u8* pp_Data, u32 vp_len){ unsigned char i; unsigned char crc = 0; while (vp_len--) { for (i = 0x80; i != 0; i >>= 1) { if ((crc & 0x80) != ...

2018-11-09 19:50:56 198

原创 aud_timer.c

#include "Stdafw.h"#include "aud_app.h"#include "aud_timer.h"#define TIME_OUT_100MS 100 //10sextern struct t_pcm_file g_pcm_file;extern E_AUD_STATUS g_audio_status;extern E_RECORD_STA...

2018-11-09 19:50:12 193

原创 aud_test.c

#include "aud_media.h"#include "aud_app.h"/******************************测试接口****************************************//*测试用例: 2:start_audio_app()调用测试接口*//*录音本地测试: 传入需要录制文件的大小,录制完成后自动播放,测试...

2018-11-09 19:49:01 213

原创 aud_media.c

#include "aud_media.h"/*创建音频文件*/int pcmfile_create(struct t_pcm_file* pp_pcm_file, E_PCM_FORMAT vp_format){ int ret = (pp_pcm_file->m_filename) ? 0 : -1; FILE* fp = fopen(pp_pcm_file->m...

2018-11-09 19:48:12 171

原创 aud_app.c

#include "aud_app.h"#include "crc_8.h"#include "aud_media.h"#include "aud_timer.h"/*存放media数据的音频文件*/ struct t_pcm_file g_pcm_file;/*音频当前状态*/ E_AUD_STATUS g_audio_status = STOP_STATUS;/*录...

2018-11-09 19:47:29 818

原创 111

HANDLE g_hEvent;UINT MyThreadFunction(LPVOID pParam){ //WaitForSingleObject(g_hEvent, INFINITE); loop(); SetEvent(g_hEvent); return 0;}UINT MyThreadFunction2(LPVOID pParam){ pro_dlg* SS =...

2018-10-23 09:08:14 147

转载 配置wifi为AP模式 -- 接入点hostapd基本配置

转载。 https://blog.csdn.net/wh_19910525/article/details/52244604  hostapd是一个带加密功能的无线接入点程序,是Linux操作系统上构件无线接入点的一个比较方便的工具,支持IEEE 802.11协议和IEEE 802.1X/WPA/WPA2/EAP/RADIUS加密。 对于 hostapd,最关键的一步就是配置h...

2018-08-27 19:39:18 1981

转载 VGA信号一些分辨率的参数(摘抄)

VGA信号一些分辨率的参数(摘抄)      摘抄自:http://group.chinaaet.com/273/4100029440      VGA的接口时序如图所示,场同步信号VSYNC在每帧(即送一次全屏的图像)开始的时候产生一个固定宽度的高脉冲,行同步信号HSYNC在每行开始的时候产生一个固定宽度的高脉冲,色彩数据在某些固定的行和列交汇处有效。         如前所述,...

2018-08-17 14:12:48 10303

原创 imx6配置GPIO KEY,编写KEY应用

(主机端)基础知识imx6 3.0.35  kernel中内核驱动核心源码实现位置参数配置文件板级目录:arch/arm/mach-mx6/板级文件:arch/arm/mach-mx6/board-myimx6ek***.c (“***”表示200或314)管脚功能定义:arch/arm/mach-mx6/board-myimx6ek***-6*.h (“***”表示200...

2018-08-13 17:17:45 2473

原创 Imx6编译应用APP并烧录

编写APP.c文件导出编译工具链配置(必须,否则编译链错误)source ../../03_tools/myimx6_3035_build_envecho $CROSS_COMPILE编译应用文件${CROSS_COMPILE}gcc led_test.c -o led_test.out将可执行文件拷贝到filesystem并烧录(打包filesystem更新包)...

2018-08-13 16:08:25 696

原创 imx6配置GPIO为LED,编写LED应用

(主机端)基础知识imx6 3.0.35  kernel中内核驱动核心源码实现位置参数配置文件板级目录:arch/arm/mach-mx6/板级文件:arch/arm/mach-mx6/board-myimx6ek***.c (“***”表示200或314)管脚功能定义:arch/arm/mach-mx6/board-myimx6ek***-6*.h (“***”表示200...

2018-08-13 15:37:57 2608

原创 imx6编译并烧录filesystem

(修改filesystem)解压文件系统到编译主机建文件系统的目录并进入cd /home/sun/share/imx6/my-imx6/04_rootfs 添加应用到文件系统我们在app_test中copy一份led可执行文件已表示对fs进行修改 cd app_test cp led ./led_copy(打包filesystem更新包) rm -rf...

2018-08-13 11:17:01 742

原创 imx6编译修改kernel并烧录

(编译kernel)进入内核源码目录cd /home/sun/share/imx6/my-imx6/02_source/imx_3_0_35使配置文件生效source ../../03_tools/myimx6_3035_build_env清除内核配置make distclean生成.config文件make myimx6_defconfig 编译内...

2018-08-13 10:46:02 2534

转载 VMware虚拟机下ubuntu12配置NFS服务

VMware虚拟机下ubuntu12配置NFS服务2016年03月14日 20:02:54阅读数:1195一、 在配置NFS前,首先要确保几件事情: 1、VMware虚拟机网络连接配置为桥接。 2、ubuntu网络连接为自动获取IP。 3、主机、虚拟机、开发板,三者之间能够相互ping通。 二、在这期间可能遇到的问题如下: 1、ubuntu之前设置为静态IP,改回动态自动获取...

2018-08-13 10:17:35 2852

转载 明远智睿i.MX6开发板EK200:添加显示屏驱动支持

明远智睿i.MX6开发板EK200捡漏之三:添加显示屏驱动支持转载请注明作者和出处:http://blog.csdn.net/u011475210 嵌入式平台:明远智睿i.MX6开发板EK200 嵌入式系统:Linux-3.0.35 虚拟机系统:Ubuntu14.04 编者: WordZzzz1.填充参数: 填充lcdif_modedb,如下图所示:    ...

2018-08-13 10:17:03 258

转载 移植Linux系统到iMX6开发板之LVDS显示屏驱动程序的框架分析与移植

今天记录一下项目中的关于LVDS显示屏的驱动程序的分析与移植。因为驱动源码厂家已经提供好,我们需要做的就是读懂驱动程序的代码,以及平台层的匹配过程,以及如何在uboot中获取lvds参数,来匹配你的具体显示屏的参数。首先我们来大致分析一下驱动程序的重要的结构部分:1.mxc_ipuv3_fb.c 是imx6具体显示模块平台核心的驱动,最终用于把fb_info结构体注册到 framebuf...

2018-08-13 10:16:46 834

转载 iMX6开发板移植Linux系统之LVDS显示屏驱动程序分析之LVDS参数的匹配过程分析

https://blog.csdn.net/qq_37375427/article/details/78989415

2018-08-13 10:16:35 1130

转载 基于IMX6的GPIO驱动程序

  Linux内核版本:linux-3.0.35     开发板: IMX6S MY-IMX6-EK200     编译环境:Ubuntu12     主要内容:IMX6S的IO驱动程序编写(ioctl)     实现功能:通过应用层程序控制底层IO的读写https://blog.csdn.net/c406495762/article/details/53907825一、驱动层 1...

2018-08-13 10:16:21 2050

转载 imx6 RGB LCD

imx6 RGB LCDimx6dl需要支持lcd接口的屏,imx6dl的datasheet并没有明确的说明lcd相关的配置,只在Display Content Integrity Checker (DCIC)一章中介绍。本文记录imx6支持lcd的方法。参考链接http://developer.toradex.com/knowledge-base/display-output-res...

2018-08-13 10:15:21 1532

原创 imx6 EK200 编译并烧录u-boot

(编译)进入u-boot源码目录cd /home/sun/share/imx6/my-imx6/02_source/u_boot使配置文件生效source ../../03_tools/myimx6_3035_build_env查看编译配置echo $ARCHecho $CROSS_COMPILE 清除u-boot配置make distcleanu...

2018-08-13 10:14:27 426

原创 什么是TWS蓝牙耳机?

什么是TWS蓝牙耳机?  自去年iphone7取消3.5mm插孔后,蓝牙耳机市场得到迅猛发展,蓝牙耳机种类也层出不穷,特别是一种TWS无线蓝牙耳机更是让消费者疑惑顿生。针对消费者的问题,纳音科技的研发人员来给大家科普下什么是TWS蓝牙耳机?  要说TWS蓝牙耳机,我们先从TWS技术说起。TWS:为True  Wireless  Stereo的缩写,是真正无线立体声的意思,这种技术的实现是基于芯片技...

2018-06-29 10:56:01 234947 4

原创 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)

输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) ...

2018-06-10 21:57:06 927

原创 输入一个链表,反转链表后,输出链表的所有元素。

输入一个链表,反转链表后,输出链表的所有元素。class Solution {public: ListNode* ReverseList(ListNode* pHead) { ListNode* next = NULL; ListNode* pre = NULL; if(!pHead) return NULL; while(...

2018-06-10 16:08:53 421

原创 输入一个链表,输出该链表中倒数第k个结点。

输入一个链表,输出该链表中倒数第k个结点。class Solution {public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { ListNode* p;ListNode* q; p = q = pListHead; int i = 0; ...

2018-06-10 15:39:16 419

转载 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。链接:https://www.nowcoder.com/questionTerminal/8ee967e43c2c4ec193b040ea7fbb10b8来源:牛客网public class Solution { //从n的2进制形式的最右边开始判断是不是1 /* * 该解法如果输入时负数会陷入死循环, ...

2018-06-10 08:41:32 2617 1

空空如也

空空如也

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

TA关注的人

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