嵌入式Linux
文章平均质量分 87
EthanChou2020
村口的榕树啊,你在盼望着什么?
展开
-
Nand Flash 启动原理
注:本文来自胡浩同事笔记 大部分ARM9的CPU内部都集成有一个SRAM,SRAM是英文Static RAM的缩写,它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据。这样它不需要初始化就能够直接使用。这外部扩展的大容量的SDRAM是不一样的,外部大容量的SDRAM是需要初始化后才能使用的。这点在我做过移植的处理器:s3c2410(arm920t),s3c24转载 2012-11-27 15:40:09 · 1121 阅读 · 0 评论 -
openwrt配置
root@OpenWrt:~# cat /etc/config/systemconfig system option hostname 'OpenWrt' option conloglevel '8' option cronloglevel '8' option zonename 'Asia/Shanghai' option timezone 'CST-8'原创 2015-07-10 16:01:32 · 1508 阅读 · 0 评论 -
openwrt之aria2
## Copyright (C) 2012 OpenWrt.org## This is free software, licensed under the GNU General Public License v2.# See /LICENSE for more information.#include $(TOPDIR)/rules.mkPKG_NAME:=aria2PKG_VERS原创 2015-07-06 23:25:35 · 1583 阅读 · 0 评论 -
音频系统框架笔记
框架一 plug:equalizer plug:pulse或dmix kernel driver codec总结: equalizer消耗cpu严重。实测还经常出现bus error错误。equalizer选择可以用alsaequal或者mbeq,甚至可以自己写。dmix为alsa-lib自带。pulse audio为开源软件。软件处理eq,低采样率可能需要重采样,会带入噪音。原创 2015-08-26 20:00:44 · 1422 阅读 · 0 评论 -
openwrt之gdb
openwrt的gdb使用笔记转载 2015-08-26 18:01:01 · 4636 阅读 · 0 评论 -
openwrt之ubus
参考文档 ① OpenWrt micro bus 架构 ② OpenWrt ubus简介 一、ubus基本概念对象类似于总线的设备,由服务进程注册。对象可以对外提供“方法”,可以接收外部“通知”。ubus还有路径 “路径” 的概念。路径本质上是对象,因为与 “对象”有密切关联,所以在命名上看似隶属“对象” 。例如: network network.device转载 2015-10-20 15:40:38 · 4248 阅读 · 0 评论 -
脚本的那些事儿
文件列表 作为一个码农,经常需要看内核代码。内核代码万万,笔者需要生成一个实际使用编译的文件列表。下面是生成的脚本。#!/bin/shcat /dev/null > /dev/shm/kernel.filesfor file in $(find -L src -type f -regex '.*\.o')do [ -f ${file%.o}.c ] && echo ${file%.o原创 2016-01-07 17:39:25 · 754 阅读 · 0 评论 -
sunxi分区那些事儿
参考文档 ① 使用buildroot完全自定义自己的embedded linux系统(nand) ② Overlay Filesystem ③ How do I use OverlayFS? 分区表 分区表由文件sys_config.fex划分,填充内容由[downloadi]指定。而[downloadi]对应的 文件则由文件image.cfg定义。 - sys_config.fex转载 2016-01-09 12:21:24 · 6347 阅读 · 0 评论 -
alsa之dapm笔记
参考博客宗旨snd_soc_dapm_contextsnd_soc_dapm_widgetDAPM之内部APIDAPM之外部API参考博客ALSA架构详解宗旨分析dapm的代码不应以弄清除dapm原理为目标,而应该是出于可以看懂和编写codec或者platform驱动目的。毕竟代码万万,linux kernel已经封装的接口又不需要驱动开发者实现。驱动开发者不应该浪费有限的生命。sn转载 2016-03-08 16:28:10 · 1210 阅读 · 0 评论 -
BASE64编码
BASE64编码参考文章概述编码方法例1例2Base64编码表BASE64编码参考文章base64 百度百科base64 在线编/解码概述Base64是一种用64个字符来表示任意二进制数据的方法。Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符转载 2016-04-12 15:04:25 · 744 阅读 · 0 评论 -
linux文件权限笔记
前言 本文描述的权限是指文件或目录的基本权限,不涉及selinux。权限构成位域表示 位域 11 10 09 08 07 06 05 04 03 02 01 00 权限 S G T r w x r w x r w x- S位代表可执行文件可提升至所有者权限执行。非可执行文件无效。 - G位原创 2016-08-04 18:40:11 · 928 阅读 · 0 评论 -
电容屏FT5x06驱动与设计
电容屏FT5x06驱动与设计说明书 拟 制 人:周亦行 核 准 人:发布单位:发布时间: 版本变更说明版本变更说明作者日期V1.00初始版本周亦原创 2013-07-19 14:38:28 · 6355 阅读 · 2 评论 -
ioctl那些事儿
往事点点刚学嵌入式的时候,ioctl还是ioctl。后来,变成了ioctl、unlocked_ioctl和compat_ioctl。再后来,ioctl就没有见过ioctl了。源于笔者的冷漠,一直都不以为然。今天,笔者略有愧疚,查了一下前因后果。 在大内核锁时代,ioctl是包裹于大内核锁中的,多个ioctl之间不会有并发问题。自然,大内核锁淡化了之后,unlocked_ioctl应运而生。注意到,原创 2017-02-24 18:12:35 · 1135 阅读 · 0 评论 -
Android烂笔头
Android烂笔头android 7.0之后使用了ninja编译系统。ninja非常方便查看编译进度。同时借助于out/build-xxxxxx.ninja也方便于分析编译过程。注 文中所有xxxxxx代表设备代号bootimage生成命令rule rule35083 description = Target boot image: out/target/product/xxxxxx/bo原创 2017-07-12 11:46:12 · 1445 阅读 · 0 评论 -
Android模拟按键
Android模拟按键命令用法Usage: input [<source>] <command> [<arg>...]The sources are: keyboard mouse joystick touchnavigation touchpad trackball dpad stylus原创 2017-07-05 16:23:35 · 563 阅读 · 0 评论 -
I2C总线笔记
参考文章① I2C总线协议 简述2条双向串行线,一条数据线SDA,一条时钟线SCL。 SDA传输数据是大端传输,每次传输8bit,即一字节。 支持多主控(multimastering),任何时间点只能有一个主控。 总线上每个设备都有自己的一个addr,共7个bit,广播地址全0. 系统中可能有多个同种芯片,为此addr分为固定部分和可编程部份,细节视芯片而定,...原创 2018-03-13 14:23:34 · 1287 阅读 · 0 评论 -
ADSP 开发环境
ADSP 开发环境参考文章__builtin_conv_FtoRFormats of float概述目前,笔者的眼界处于纸上谈兵阶段。仅做参考。软件 ① CrossCore Embedded Studio ② SigmaStudio ③ VisualDSP++ ④ visualaudio个人将SHARC系列DSP软件分为两部分,framework和tune。framework部分IO配原创 2018-03-26 16:27:10 · 4883 阅读 · 0 评论 -
bitbake版本hello world
参考文章① bitbake-user-manual② bitbake-hello-world文件列表ethan@Vostro270:~/hello$ tree.├── classes│ └── base.bbclass├── conf│ ├── bblayers.conf│ └── bitbake.conf├── mylayer│ ├──...翻译 2018-05-25 15:20:47 · 2539 阅读 · 3 评论 -
openwrt之vim
## Copyright (C) 2012 OpenWrt.org## This is free software, licensed under the GNU General Public License v2.# See /LICENSE for more information.#include $(TOPDIR)/rules.mkPKG_NAME:=vimPKG_VERSIO原创 2015-07-11 16:56:09 · 3801 阅读 · 0 评论 -
应用编程之守护进程
参考博客/* * test.c * * Created on: 2011-04-23 * Author: lingdxuyan */#include <stdio.h> /* 标准输入输出定义 */#include <stdlib.h> /* 标准函数库定义 */#include <unistd.h> /* Unix 标准函数定义 */#转载 2015-06-16 22:48:42 · 787 阅读 · 0 评论 -
Linux内核Makefile笔记
Linux内核Makefile笔记 周亦行 2014年11月参考文档 ① linux源码Makefile的详细分析 ② if_changed_rule/cc_o_c/any-prereq/arg-check ③ Makefile中的伪目标 ④ Linux kernel 3.18.5 一、Makefile组成 (一)基本组成顶层 Makefile 它是所有Makefile文件的核原创 2015-03-01 14:37:50 · 3563 阅读 · 1 评论 -
解析linux根文件系统的挂载过程
解析linux根文件系统的挂载过程一、rootfs的种类总的来说,rootfs分为两种:虚拟rootfs和真实rootfs.现在kernel的发展趋势是将更多的功能放到用户空间完成。以保持内核的精简。虚拟rootfs也是各linux发行厂商普遍采用的一种方式。可以将一部份的初始化工作放在虚拟的rootfs里完成。然后切换到真实的文件系统.在虚拟rootfs的发展过程中。又有以下几个版本:转载 2012-12-14 11:41:58 · 1160 阅读 · 0 评论 -
内核笔记之链表篇
一、链表定义 struct list_head { list_head *prev; // previous node list_head *next; // next node } 出于可继承的思路,链表的定义设计最简单的形式。只有前后节点指针。二、相关函数 1、list_add(new,head)原创 2013-01-11 16:31:39 · 503 阅读 · 0 评论 -
构建文件系统脚本分析笔记
# 生成方式 # $1=K320P; $2= debug; $3=101; $4=normal;cp -rf $XGD_SHARE $XGD_ROOTFScp -rf $XGD_PRIVATE/$1/public/* $XGD_ROOTFScp -rf $XGD_PRIVATE/$1/$4/public/* $XGD_ROOTFSc原创 2013-02-21 09:56:58 · 589 阅读 · 0 评论 -
Git乱码配置
配置命令: [zhouyixing@LinuxServer app]$ git config --global gui.encoding gb18030 [zhouyixing@LinuxServer app]$ git config --global i18n.commitencoding gb18030 [zhouyixing@LinuxServer app]原创 2013-02-25 10:18:16 · 871 阅读 · 0 评论 -
内核如何根据堆栈指针获current_thread_info
current_thread_info的定义在include/asm/thread_info.h中:/* Given a task stack pointer, you can find it's task structure * just by masking it to the 8K boundary. */staticinline struct thread_info转载 2013-04-25 18:01:28 · 1208 阅读 · 0 评论 -
移植rzsz-3.48
参考博客:http://blog.csdn.net/jhj117/article/details/58847881、获得rzsz-3.48源码http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gzUbuntu 下可以直接用命令获得,命令如下:wget http://freeware.sgi.com/source/rzsz/rzs原创 2012-10-23 21:43:04 · 2163 阅读 · 0 评论 -
移植madplayer
参考博客:http://blog.chinaunix.net/uid-26425266-id-3226951.html一、依赖库移植(一)移植zlib1. 下载链接http://zlib.net/zlib-1.2.8.tar.gz2. 配置./configure --prefix=/home1/zhouyixing/als转载 2013-11-25 10:52:12 · 1850 阅读 · 0 评论 -
平台设备驱动手摘
说明:本文摘自同事董凯笔记 如何实现driver和device的匹配 (1)在内核初始化时kernel_init()->do_basic_setup()->driver_init()->platform_bus_init()初始化platform_bus(虚拟总线);(2)设备注册的时候platform_device_register()->platform_device_原创 2012-12-17 09:53:00 · 656 阅读 · 0 评论 -
关于GPIO的故事
第一章 概述 2第二章 软件管理架构 2第三章 GPIO中断处理 6第四章 IO复用 9 第一章 概述这里所说的gpio是指General Purpose Input/Output,也就是通用输入输出。对于imx258芯片,可以用作的GPIO的引脚有128个。128个又分为4组,每组32个。Gpio具有比较多的功能,例如上拉,下拉,方向可设和中断特性可设等。本文的目原创 2013-09-06 17:11:44 · 3415 阅读 · 0 评论 -
ARM7的模式
ARM7的模式转载:点击打开链接ARM7有7种模式:User用户、System系统、Fast Interrupt快速中断、Interrupt中断、Supervisor管理、Abort中止、Undefined未定义,共有37个寄存器,结构如下图。 其中白色寄存器为共有的,彩色为该模式独有的。模式由CPSR中的低五位决定,更改这5位(用户模式除外)就可以进入相应的模式,模式转载 2013-12-06 21:53:33 · 1737 阅读 · 0 评论 -
linux deepin配置adb
参考博客:点击打开链接安装adb工具sudo apt-get install android-tools-adb确认手机usb的IDzhouyixing@T6Series:/etc/udev/rules.d$ lsusbBus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub转载 2014-01-19 12:24:47 · 4643 阅读 · 0 评论 -
移植mplayer
移植mplayer前提:移植libmad和alsa-lib配置命令:./configure --host-cc=gcc --cc=arm-none-linux-gnueabi-gcc --target=arm-none-linux-gnueabi --enable-static --disable-win32dll --disable-dvdread --disable-dvdre原创 2014-02-13 16:18:37 · 907 阅读 · 0 评论 -
交叉编译gdb
参考文章:点击打开链接一、编译termcap库1.下载地址点击打开链接2.编译安装./configure --host=arm-none-linux-gnueabi --prefix=/home/zhouyixing/Software/gdb/termcap-1.3修改Makefile文件CC = gcc > CC = arm-none-转载 2014-03-26 10:57:53 · 688 阅读 · 0 评论 -
Deepin配置android应用开发环境
Deepin配置android应用开发环境原创 2014-08-09 21:56:47 · 4296 阅读 · 0 评论 -
红外遥控协议
概述红外遥控协议有比较多的标准,笔者只简单介绍一下自己遇到过的NEC协议和RC5协议。RC5载波频率为36KHz。数据包示例上图乃笔者用逻辑分析仪抓取的数据包。逻辑分析仪中自带了RC5解码。上图一目了然,分析清晰明确。编码格式每位固定周期为1.778ms。前半位为高,后半位为低代表1;前半位为高,后半位为高代表0。数据包格式数据包格式有标准格式和拓展...原创 2018-08-22 15:12:07 · 7709 阅读 · 2 评论