自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

p_fly的博客

挖坑专业户

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

原创 ALSA Timer

0. 前言本文主要介绍alsa-timer相关代码的分析内容。1. 介绍官方文档可以参见下面的链接:ALSA Timer官网上对Timer的介绍很简单,我根据自己的使用情况总结如下:Timer被设计为使用声卡内部的定时器,但是也可以被其它定时器驱动,比如内核中的 snd_timer.ko 就是一个基于系统定时器的Timer。Timer使用循环Buffer来存储信息。

2018-01-24 16:32:49 1151

原创 ALSA Configure

0. 前言本文主要介绍alsa-lib配置文件相关代码的分析内容。1. 配置文件的路径在alsa-lib中,函数 snd_config_topdir 用于获取配置文件的路径,有两个方法可以进行配置:使用环境变量 ALSA_CONFIG_DIR 进行配置。在生成configure时,使用 –with-configdir=dir 进行配置。默认的路径为 $prefix/s

2018-01-15 15:03:03 828

原创 Autotools基础使用

0. 前言当前开源项目的标准编译过程已经变成了简单的三部曲:configure/make/make install,使用起来很方便。维护者不在需要考虑不同编译环境的问题,也基本上不需要写太多复杂的Makefile。但是,autotools的工具数量太多,涉及的语言也不少,不可能从头学到尾。本文以一个完整的例子,一步步建立了一个基本可用的模板工程。后续项目可以直接使用该工程,并且可以逐步完善自己的需求

2017-11-28 10:47:07 1181

原创 ALSA install

ALSA install

2017-10-13 15:51:27 494

原创 [004-u-boot-Exynos4412] Clock Management Unit

0. 前言本文以Exynos4412芯片为例,介绍了CMU(Clock Management Unit)。CMU通过控制PLL产生系统时钟,总线时钟和外设时钟。1. 时钟域Exynos4412包含5个时钟域,如图所示:CMU_CPU:提供Cortex-A9 MPCore处理器,L2 cache控制器,and CoreSight(调试器)的时钟。CMU_DMC:提供DRAM内存控制器,安全子系统和

2017-08-24 20:11:53 614

原创 [003-u-boot-Exynos4412] 移植SPL阶段

0. 前言本文以Exynos4412芯片为例,介绍了SPL阶段的软件流程。 具体代码可以参考:uboot code1. SPL介绍SPL(Secondary Program Loader)是uboot第一阶段执行的代码。主要负责初始化CPU Core,系统时钟和DRAM控制器等,并搬移uboot第二阶段的代码到系统内存中运行。SPL一般是由固化在芯片内部的ROM引导的。2. SPL配置项CONF

2017-08-24 19:58:20 927

原创 [002-u-boot-Exynos4412] SDK BL2阶段详解

0. 前言本文以Exynos4412芯片为例,简要介绍了uboot的相关概念,并择重分析了BL2阶段的软件流程。1. uboot简介uboot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。它的作用是进行系统引导(相当于BIOS)。它的目标包含以下两个方面:支持多种嵌入式操作系统。如:Linux、NetBSD、VxWorks等。支持多种嵌入式芯片架构。如:Pow

2017-08-24 19:54:45 1679 2

原创 安装opencv-3.2.0

安装opencv-3.2.0

2017-07-31 19:09:51 339

原创 [Makefile-随笔] ifdef多条件判断

在使用Makefile时,有时需要实现如下的逻辑:ifdef VAR1 || VAR2 || VAR3 或 ifdef VAR1 && VAR2 && VAR3但ifdef只支持单一的变量操作,在网上搜索了一下,有一个非常好的解决方案,总结如下。原文链接||操作ifdef_any_of = $(filter-out undefined,$(foreach v,$(1),$(origin $(v)))

2017-07-28 15:41:59 13103 1

原创 [000-u-boot-Exynos4412] RP4412 IROM Booting

0. 前言本文以Exynos d4412芯片为例,介绍了CPU的启动过程。1. 启动介质Exynos 4412可以选择下列启动介质:General NAND flash memorySD/MMC memory cardeMMC memoryUSB deviceCPU通过读取OM引脚寻找启动介质。软件可以通过OM寄存器获取当前的启动信息。2. 启动顺序由手册“5 Booting Sequen

2017-07-18 16:13:23 1169 3

原创 gcc warning选项

选项 说明 -Wimplicit-int 警告没有指定类型的声明 -Wimplicit-function-declaration 警告在声明之前就使用的函数 -Wimplicit 同-Wimplicit-int和-Wimplicit-function-declaration -Wpointer-arith 对函数指针或者void *类型的指针进行算术操作时给出警告

2017-02-19 23:32:20 2278

原创 gcc -ffunction-sections -fdata-sections -Wl,–gc-sections 参数详解

背景有时我们的程序会定义一些暂时使用不上的功能和函数,虽然我们不使用这些功能和函数,但它们往往会浪费我们的ROM和RAM的空间。这在使用静态库时,体现的更为严重。有时,我们只使用了静态库仅有的几个功能,但是系统默认会自动把整个静态库全部链接到可执行程序中,造成可执行程序的大小大大增加。参数详解为了解决前面分析的问题,我们引入了标题中的几个参数。GCC链接操作是以section作为最小的处理单元,只要

2017-02-16 01:12:25 15505

原创 [001-Cortex_M3-GCC汇编] 第一个点灯程序

背景使用Cortex-M3已经有一段时间了,大大小小也做过几个项目,可以说对这个系列的片子是有一定的了解。相对于以前的8位单片机来说,其存储空间,外设种类都有较大的提升,这对于产品的应用显得非常便利。最近,因为项目上的原因做了一些汇编工作,个人觉得如果想把Cortex-M3系列的芯片用好,汇编方面的理论知识还是需要学习和补充的,因此就有了写这一系列文档的动力,权当总结一下汇编的基础知识和实用样例。

2017-01-26 12:36:54 2379

原创 交叉编译详解 三 使用脚本自动生成交叉编译链

简介鉴于从零制作交叉编译链的命令异常繁杂,很容易因为某个细节出现错误。因此,我将自己创建交叉编译链的步骤写成了脚本,如果大家自己搭建时出现错误,可以直接使用脚本进行创建,以此来确定是自己的步骤有问题还是环境差异造成的。总共有三个脚本,使用说明和脚本源码见后文:toolchain_mkpj.sh 用于创建编译工程目录toolchain_build.sh 用于编译交叉工具链toolch

2017-01-01 21:57:54 4318 3

原创 gcc -M 参数详解

gcc -M 参数详解

2016-11-14 23:33:57 11037

原创 gcc -x 参数详解

gcc -x 参数详解

2016-11-14 17:46:59 1515

原创 [001-u-boot-Exynos4412] make smdk4412_config 命令详解

详解 Exynos4412 开发版的 make smdk4412_config 命令

2016-11-09 14:38:38 1058

原创 Intel HEX文件格式

最近在使用keil编译TI的一款M3芯片,keil编译出来的Hex文件符合Intel HEX格式。在此总结一下Intel HEX文件格式。Intel HEX文件格式的文本由ASCII文本文件构成。每一行包含一条数据记录,由回车符(0D0A)结束。Intel HEX文件通常用于传输存于ROM或EPROM中的程序和数据。每条记录包含5个域按如下格式排列:llaaaatt[dd...]cc每个记录都以冒

2016-11-06 20:39:09 661

原创 [问题-已解决]arm-none-linux-gnueabi-gcc没有那个文件或目录

解决问题 arm-none-linux-gnueabi-gcc:没有哪个文件或目录

2016-10-26 15:40:36 9678 1

原创 交叉编译详解 二 从零制作交叉编译链

从零搭建交叉编译链

2016-10-25 01:04:06 9838 4

原创 交叉编译详解 一 概念篇

本文总结了什么是交叉编译链,并介绍了交叉编译链的各个组成部分

2016-10-25 01:00:45 86567 8

I2S bus specification

I2S bus specification

2015-09-21

空空如也

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

TA关注的人

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