- 博客(67)
- 收藏
- 关注
原创 ALSA驱动框架分析1:简介
简介:Alsa是linux声卡的一种驱动框架,类似的还有oss,简单的说,声卡就是一块外接硬件,用来播放和录音的设备,将处理后的数据通过iis和mcu进行交互,因此,声卡需要2个部分共同作用,即mcu侧和codec侧。典型的音频设计是: 一块电路板上一颗CPU的I2S接口外挂一颗Codec芯片, Codec在外接耳机或功放等. 如下图所示以播放为例, 在这样一个硬件结构下, 涉...
2019-10-22 16:41:48 778 1
原创 lwip协议栈入门分析1
这里是正式开始写lwip入门章节的第一篇,因为自己学习的总结,那么中间涉及到的很多嵌入式方面的,如mcu、rtos、计算机基础相关的东西,我在这里就不会记录的。这里说明,所有的内容都是按照个人的理解,由于刚刚学习,所以难免有些错误的理解和概念,因此,如果以后随着学习的深入,我会再次更正错误的内容。LwIP是Light Weight (轻型)IP协议,有无操作系统的支持都可以运行。LwIP实现的...
2019-10-06 14:49:11 700
原创 lwip协议栈学习前言
准备开始接触一些物联网相关的东西,好久没来看过这个博客了,感觉都要成一块荒地了,以前乱七八糟写了一些东西,都不知道写的啥,虽然一直用有道云笔记,但感觉还是花个时间重新整理一下,然后把以前学的东西整理到这里了,为啥开始学习物联网,这里就不多说了,以前虽然有嵌入式的基础,但是还是觉得花不少时间来学习的,前段时间,抽空了解了一些物联网的东西,比如http、mqtt等物联网相关的应用协议,了解到lwip这...
2019-10-06 14:00:05 320
转载 kernel - component组件用法
component在多个模块相互关联并且存在一定的初始化顺序时非常有用。现分析下其工作原理,以便后续组织自己的驱动模块。一、component_match分析component_match在master和component匹配时用,它包含一个匹配函数指针和一个void *类型的数据指针,其结构体定义如下:struct component_match { size_t ...
2019-09-18 11:41:25 2903
原创 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 1037
原创 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 273
原创 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 204
原创 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 252
转载 USB的工作原理
USB的工作原理及数据包格式 一 概述 对于USB的工作我这里做个比方,主机好比一个公司,你就是USB设备,要进入公司首先要面试(枚举),你到了面试现场(第一次插入设备),面试官首先了解到你的外表,性别已经你要应聘的岗位(设备描述符),然后给你一个号,以后就开始按号叫人,当你被叫到就开始问你的专业知识,性格等(配置描述符),如果你比较合适(通过了枚举)你就会录取了,并且注册一个你的信息到公司(驱...
2019-01-04 09:39:55 6001
原创 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 224
原创 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 261
原创 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 238
原创 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 208
原创 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 250
原创 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 277
原创 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 226
原创 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 208
原创 aud_test.c
#include "aud_media.h"#include "aud_app.h"/******************************测试接口****************************************//*测试用例: 2:start_audio_app()调用测试接口*//*录音本地测试: 传入需要录制文件的大小,录制完成后自动播放,测试...
2018-11-09 19:49:01 238
原创 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 191
原创 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 841
原创 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 168
转载 配置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 2092
转载 VGA信号一些分辨率的参数(摘抄)
VGA信号一些分辨率的参数(摘抄) 摘抄自:http://group.chinaaet.com/273/4100029440 VGA的接口时序如图所示,场同步信号VSYNC在每帧(即送一次全屏的图像)开始的时候产生一个固定宽度的高脉冲,行同步信号HSYNC在每行开始的时候产生一个固定宽度的高脉冲,色彩数据在某些固定的行和列交汇处有效。 如前所述,...
2018-08-17 14:12:48 10815
原创 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 2558
原创 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 719
原创 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 2661
原创 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 767
原创 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 2598
转载 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 2902
转载 明远智睿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 295
转载 移植Linux系统到iMX6开发板之LVDS显示屏驱动程序的框架分析与移植
今天记录一下项目中的关于LVDS显示屏的驱动程序的分析与移植。因为驱动源码厂家已经提供好,我们需要做的就是读懂驱动程序的代码,以及平台层的匹配过程,以及如何在uboot中获取lvds参数,来匹配你的具体显示屏的参数。首先我们来大致分析一下驱动程序的重要的结构部分:1.mxc_ipuv3_fb.c 是imx6具体显示模块平台核心的驱动,最终用于把fb_info结构体注册到 framebuf...
2018-08-13 10:16:46 891
转载 iMX6开发板移植Linux系统之LVDS显示屏驱动程序分析之LVDS参数的匹配过程分析
https://blog.csdn.net/qq_37375427/article/details/78989415
2018-08-13 10:16:35 1191
转载 基于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 2073
转载 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 1568
原创 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 455
原创 什么是TWS蓝牙耳机?
什么是TWS蓝牙耳机? 自去年iphone7取消3.5mm插孔后,蓝牙耳机市场得到迅猛发展,蓝牙耳机种类也层出不穷,特别是一种TWS无线蓝牙耳机更是让消费者疑惑顿生。针对消费者的问题,纳音科技的研发人员来给大家科普下什么是TWS蓝牙耳机? 要说TWS蓝牙耳机,我们先从TWS技术说起。TWS:为True Wireless Stereo的缩写,是真正无线立体声的意思,这种技术的实现是基于芯片技...
2018-06-29 10:56:01 235914 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 941
原创 输入一个链表,反转链表后,输出链表的所有元素。
输入一个链表,反转链表后,输出链表的所有元素。class Solution {public: ListNode* ReverseList(ListNode* pHead) { ListNode* next = NULL; ListNode* pre = NULL; if(!pHead) return NULL; while(...
2018-06-10 16:08:53 442
原创 输入一个链表,输出该链表中倒数第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 439
转载 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。链接:https://www.nowcoder.com/questionTerminal/8ee967e43c2c4ec193b040ea7fbb10b8来源:牛客网public class Solution { //从n的2进制形式的最右边开始判断是不是1 /* * 该解法如果输入时负数会陷入死循环, ...
2018-06-10 08:41:32 2636 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人