
嵌入式
文章平均质量分 78
viewsky11
这个作者很懒,什么都没留下…
展开
-
factory 命令参考
/* * factory - Realtek factory command * * Copyright (c) 2018 Realtek Semiconductor Corp. */1. Change u-boot environment: $ factory (load|set|save|list) [variable] [value]Set without valu...原创 2018-09-11 18:20:21 · 1170 阅读 · 0 评论 -
mini6410的BSP文件
/* linux/arch/arm/mach-s3c64xx/mach-mini6410.c * * Copyright 2010 Darius Augulis * Copyright 2008 Openmoko, Inc. * Copyright 2008 Simtec Electronics * Ben Dooks * http://armlinux.simtec.原创 2015-01-12 10:05:46 · 707 阅读 · 0 评论 -
libhttpd深入分析
libhttpd是一个小型的嵌入式web server,在开发过程中,如果需要web server,但仅仅需要实现固定两三个web网页服务及处理小部分http请求,则可以将Libhttpd嵌入开发中,生成动态库文件使用。 libhttp:http://www.hughes.com.au/products/libhttpd/libhttpd提供了良好的API,可以实现web server的静态和动态原创 2016-11-11 12:48:46 · 4660 阅读 · 0 评论 -
configure的参数记录
交叉编译一个软件时被configure的一个参数给绊住了,浪费了时间!因为没有仔细查看INSTALL和configure的参数配置。configure –help还是十分有用的!`configure' configures this package to adapt to many kinds of systems.Usage: ./configure [OPTION]... [VAR=VALUE]原创 2016-09-08 14:23:03 · 1203 阅读 · 0 评论 -
wifidog源码分析(一)
网上已有源码详细的源码分析,此分析仅做个人记录 从main开始wifidog-gateway/src/gatway.c/* Reads the configuration file and then starts the main loop */int //读取配置文件,也就是/etc/wifidog.conf中的各项配置gw_main(int argc, char原创 2016-09-08 14:18:55 · 1947 阅读 · 0 评论 -
OE中的bitbake使用
OpenEmbedded是一些脚本(shell和python脚本)和数据构成的自动构建系统。 脚本实现构建过程,包括下载(fetch)、解包(unpack)、打补丁(patch)、configure、编译(compile)、安装(install)、打包(package)、staging、做安装包(package_write_ipk)、构建文件系统等。 1、OE编译顺序:do_setsce原创 2016-08-19 19:57:28 · 4388 阅读 · 2 评论 -
pandorabox wifi驱动脚本分析
文件位置:/lib/wifi/rt2860v2.sh #!/bin/sh## by lintel@gmail.com, hoowa.sun@gmail.com## by memccpy@gmail.com 2014.8append DRIVERS "rt2860v2"prepare_config() {#获取参数 存储配置的变量 目标配置关键字 local num=0 mode di原创 2015-05-05 15:26:47 · 6152 阅读 · 0 评论 -
M25P80原理、中文资料
1引言FPGA凭借其方便灵活、可重复编程等优点而日益被广泛应用;闪速存储器(Flash Memory)以其集成度高、成本低、使用方便等优点,在众多领域中也获得了广泛应用。在现代数字电路设计中。经常需要保存大量数据,而Flash存储速度快、体积小、功耗低且价格低廉,可在线电擦写,信息在掉电后不会丢失,因此成为设计人员的首选。2 M25P80的介绍Flash是一种具有电可擦除的转载 2015-04-13 10:22:42 · 9242 阅读 · 0 评论 -
linux内核SPI总线驱动分析(一)
下面有两个大的模块:一个是SPI总线驱动的分析 (研究了具体实现的过程)另一个是SPI总线驱动的编写(不用研究具体的实现过程)SPI总线驱动分析 1 SPI概述 SPI是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口,是Motorola首先在其MC68HCXX系列处理器上定义转载 2015-04-13 10:47:09 · 724 阅读 · 0 评论 -
Openwrt的wifi脚本分析
首先分享一下/sbin/wifi脚本#!/bin/sh # Copyright (C) 2006 OpenWrt.org . /lib/functions.sh原创 2015-04-11 20:47:09 · 8337 阅读 · 0 评论 -
mini6410的启动--
U-Boot 1.1.6 (Jan 4 2015 - 09:27:38) for FriendlyARM MINI6410CPU: S3C6410@532MHz Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC Mode) Board: MINI6410原创 2015-01-04 10:12:35 · 1517 阅读 · 0 评论 -
s3c6410-smdk6410.dts文件
/* * Samsung S3C6410 based SMDK6410 board device tree source. * * Copyright (c) 2013 Tomasz Figa * * Device tree source file for SAMSUNG SMDK6410 boa原创 2015-01-15 15:56:24 · 1236 阅读 · 0 评论 -
mini2440 backlight驱动--linux-3.10.59
/* linux/drivers/video/mini2440_backlight.c * Copyright (c) 2013 Feng Guoqing * * mini2440 LCD backlight Driver * * This file is subject to the terms and conditions of the GNU General Public原创 2014-12-26 14:02:00 · 614 阅读 · 0 评论 -
adb和adbd分析
在adb中有三个模块,分别是adbd,adb server,adb client,如下表所示: module name process name run as adbd adbd device/emulator adb server windows: adb.exe linux: adb client adb client such as eclipse,原创 2016-12-26 22:39:00 · 31847 阅读 · 2 评论 -
little kernel分析
little kernel做为Android系统的bootloader,最早用google工程师实现,其后由高通,MTK等芯片厂商做了各自平台的适配。 lk的主要功能:初始化硬件模块,如时钟,中断,UART,USB,LCD,PMIC,eMMC/UFS等。 更新cmdline。其中重要的是区分启动模式。 选择和更新device tree。 设置好系统状态,跳转到kernel。 MMU =原创 2016-12-28 12:52:22 · 13286 阅读 · 1 评论 -
hack plc(Power Line Communication)
plc与电力猫简介电力线通信(Power Line Communication,英文简称PLC)技术是指利用电力线传输数据和媒体信号的一种通信方式 [1] 。该技术是把载有信息的高频加载于电流然后用电线传输接受信息的适配器再把高频从电流中分离出来并传送到计算机或电话以实现信息传递。电力线通信全称是电力线(Power Line Carrier – PLC)通信...原创 2018-05-28 12:07:53 · 1365 阅读 · 0 评论 -
plc(Power Line Communication)通信测试程序
plc(Power Line Communication)通信测试程序 plconfig.c /* plconfig.c version 0.2 Source code for Intellon-based Powerline bridge configuration tool Copyright (C) 2002-2003 Manuel Kasper <...原创 2018-05-28 09:47:12 · 1659 阅读 · 0 评论 -
ubuntu16.04 qemu arm u-boot模拟
安装交叉编译器$ arm-linux-gcc -vUsing built-in specs.COLLECT_GCC=arm-linux-gccCOLLECT_LTO_WRAPPER=/usr/local/arm_linux_4.8/libexec/gcc/arm-nuvoton-linux-uclibceabi/4.8.4/lto-wrapperTarget: arm-nuvoto...原创 2018-05-16 15:09:56 · 1236 阅读 · 0 评论 -
ubuntu-16.04 qemu 嵌入式arm模拟
下载内核源码下载内核有两种方法,一种是用git直接下载内核代码树,方便后面的内核开发。另一种是直接到内核社区下载稳定版本(详见:https://www.kernel.org/pub/linux/kernel/v4.x/)。下面演示从Linux kernel主线下载代码进行编译。git clone git://git.kernel.org/pub/scm/linux/kernel/git/t...原创 2018-05-16 15:08:32 · 3495 阅读 · 0 评论 -
嵌入式 Linux面试基础题
## 请问uboot启动过程都做了些什么? 1、cpu刚开始初始化的时候,还未设置栈,所以先使用汇编代码,构建异常项链表,然后设置cpu为svc(特权)模式,同时关闭FIQ和IRQ(防止突发中断程序跑飞了) 注:在跳转到内核之前,要满足CPU出在SVC模式下。 2、对cp15协处理器进行设置,这里主要是关闭MMU和cache 3、进入到板级初始化阶段,这里会进行时钟、内存、串口的初始...原创 2018-05-22 10:00:57 · 12847 阅读 · 2 评论 -
u-boot分析三
继续分析,u-boot怎么实现从网页加载固件实现web升级呢!是嵌入式了uip小型web服务器,可以参看manfeel的博文,在u-boot上移植uip的过程: https://blog.youkuaiyun.com/manfeel/article/details/13096075现分析u-boot_mod中的httpd的代码: u-boot上电初始化之后,进入board_init_r,如果想要通过...原创 2018-04-28 15:25:40 · 584 阅读 · 1 评论 -
u-boot分析二
继续分析编译过程 boot编译的方式是将各个目录下的源码编译成.o,然后通过mips-linux-uclibc-ar 命令创建成静态库, ./lib_bootstrap/libbootstrap.a ./cpu/mips/libmips.a ./board/atheros/board955x/libboard955x.a ./lib_mips/libmips.a ./lib_g...原创 2018-04-26 13:46:17 · 304 阅读 · 0 评论 -
u-boot.lds链接文件详解
GNU编译器生成的目标文件缺省为elf格式,elf文件由若干段(section)组成,如不特殊指明,由C源程序生成的目标代码中包含如下段:.text(正文段)包含程序的指令代码;.data(数据段)包含固定的数据,如常量、字符串;.bss(未初始化数据段)包含未初始化的变量、数组等。C++源程序生成的目标代码中还包括.fini(析构函数代码).init(构造函数代码)等. ...转载 2018-04-25 17:34:44 · 698 阅读 · 0 评论 -
u-boot分析一
同步于简书: https://www.jianshu.com/p/c60cf237ffd1 以及个人博客: https://hades2013.github.iou-boot分析以ar9331和ar953x 的为例。 获取u-boot源码git clone https://github.com/pepe2k/u-boot_mod.git 一般u-boot的初始化过程: - 硬...原创 2018-04-25 17:14:07 · 571 阅读 · 0 评论 -
linux电源管理架构
linux电源管理非常复杂,牵扯到系统机的待机、频率电压变换、系统空闲时间的处理以及每个设备驱动对系统待机的支持和每个设备的运行时runtime电源管理,可以说它和系统中的每个设备驱动都息息相关。linux内核电源管理的整体架构, 1)CPU在运行时根据系统负载进行动态电压和频率变换的CPUFreq 2) CPU在系统空闲时根据空闲的情况进行低功耗模式的CPUIdle 3)多核系统内下原创 2017-01-21 23:01:42 · 3147 阅读 · 0 评论 -
rt2860v2源码分析二
在pci_main_dev.c中,最主要的是rt2860_probe()函数,该函数查找网络设备并进程初始化, 而设备的初始化在rt2860_probe函数中的RtmpPhyNetDevInit(pAd, &netDevHook)/*NetDevInit============================================== */ net_dev = RtmpPhyN原创 2016-11-16 22:20:20 · 2351 阅读 · 0 评论 -
linux中的regulator
Regulator模块用于控制系统中某些设备的电压/电流供应。在嵌入式系统(尤其是手机)中,控制耗电量很重要,直接影响到电池的续航时间。所以,如果系统中某一个模块暂时不需要使用,就可以通过regulator关闭其电源供应;或者降低提供给该模块的电压、电流大小。regulator常用概念Regulator : 电源芯片, 比如电压转换芯片 Consumer : 消费者,使用电源的部件, Regul原创 2017-01-20 00:41:23 · 1747 阅读 · 0 评论 -
mini2440 touchscreen驱动--linux-3.10.59
/* linux/drivers/input/touchscreen/mini2440_tc.c * Copyright (c) 2013 Feng Guoqing * * mini2440 tochscreen Driver * * This file is subject to the terms and conditions of the GNU General Publ原创 2014-12-26 13:59:29 · 777 阅读 · 0 评论 -
mini2440 adc驱动--linux-3.10.59
/* linux/drivers/char/mini2440_adc.c * Copyright (c) 2013 Feng Guoqing * * mini2440 ADC Driver * * This file is subject to the terms and conditions of the GNU General Public * License. See the原创 2014-12-26 11:41:29 · 729 阅读 · 0 评论 -
mini2440 pmw驱动-linux3.10.59
mini2440 pmw驱动-linux3.10.59/* linux/drivers/char/mini2440_pwm.c * Copyright (c) 2013 Feng Guoqing * * mini2440 PWM Driver * * This file is subject to the terms and conditions of the GNU General原创 2014-12-26 10:50:22 · 676 阅读 · 0 评论 -
60元DIY售价600元的Arduino Yun
Arduino Yun可以理解为是一款具备无线功能的Arduino Leonardo板,使用了高集成的低端Atheros AR9331芯片。这个人见人爱的芯片,被用在了TP-Link及其马甲品牌的诸多路由器上,其中水星的MW150R路由器,成本更是低到了4X元人民币。当然了,这个AR9331芯片详细的应用电路图,其实早已经随着TP-Link WR703N路由的普及被开源了。顺带提一句,这个转载 2014-08-15 19:25:24 · 3564 阅读 · 0 评论 -
mini2440驱动分析之LCD
mini2440集成了lcd控制器的接口,板子上接的lcd硬件是统宝240*320,TFT型lcd。lcd驱动对应的文件为s3c2410fb.c。要读懂这个驱动必须了解linux platform子系统的知识。因为这个驱动是以platform驱动的形式注册到内核。而且还需要frambuffer驱动的知识,因为这个驱动还是frambuffer接口的。lcd驱动在模块初始化的时候,调用platform原创 2013-09-23 18:15:37 · 791 阅读 · 0 评论 -
基于mini2440触摸屏驱动
驱动路径:drivers/input/touchscreen/s3c2410_ts.c在static int __init s3c2410ts_init(void)函数中注册了两个中断1.if (request_irq(IRQ_ADC, stylus_action, IRQF_SHARED|IRQF_SAMPLE_RANDOM, "s3c2410_action", dev))原创 2013-09-23 18:01:38 · 906 阅读 · 0 评论 -
Linux中SPI子系统图解和mini2440下的SPI驱动移植
1.SPI子系统框图详解:SPI总线上有两类设备:一类是主控端,通常作为SOC系统的一个子模块出现,比如很多嵌入式MPU中都常常包含SPI模块。一类是受控端,例如一些SPI接口的Flash、传感器等等。主控端是SPI总线的控制者,通过使用SPI协议主动发起SPI总线上的会话。而受控端则被动接受SPI主控端的指令,并作出响应的响应。如图1所示,linux下的spi子系统主原创 2013-09-21 18:05:30 · 1441 阅读 · 0 评论 -
mini2440:最简单的嵌入式Linux驱动程序模块
第一种方式:编译进内核,共6步第1步:建立源码树解压安装Linux 内核源代码在工作目录/opt/FriendlyARM/mini2440 中执行:#cd /opt/FriendlyARM/mini2440#tar xvzf /tmp/linux/linux-2.6.32.2-mini2440-20100106.tar.gz将创建生成linux-2.6.32.2 目录,里面包含原创 2013-09-21 17:38:13 · 1089 阅读 · 0 评论 -
mini2440的组成结构
白色部分为CPU内部寄存器,黄色部分为外设寄存器,绿色部分为存储控制器所接外设,红色部分为外设一、S3C2440有31个通用寄存器和6个程序状态,如白色那部分访问这些寄存器直接使用它们的名字,如:msr cpsr_c,#0xd2 ldr r0,=pWTCON 二、S3C2440是32位的,2的32次方得知该CPU的地址空间为4G,即该CP原创 2013-09-20 15:16:44 · 740 阅读 · 0 评论 -
linux-2.6.32在mini2440开发板上移植---移植I2C-EEPROM 驱动
移植I2C-EEPROM 驱动 编者:略。 1 在内核中配置I2C 驱动 Linux-2.6.32.2 对S2C2440 的I2C 接口提供了完善的驱动,因此我们只需在内核中配置一下即可使用。 在内核源代码目录执行:make menuconfig,进入内核配置主菜单,依次选择进入如下子菜单: Device Drive原创 2013-09-20 14:26:55 · 1396 阅读 · 0 评论 -
linux-2.6.32在mini2440开发板上移植---SD卡驱动移植
编者:这个驱动还是比较复杂的,先移植着,以后在分析吧。SD卡驱动移植1 在内核中注册SD 设备驱动Linux-2.6.32.2 已经自带了S3C2440 芯片的SD 卡驱动,我们只需在初始化代码中加入SD 平台设备结构就可以,打开arch/arm/mach-s3c2440/mach-mini2440.c,在nand flash 平台结构后面添加如下红色代码:;在mini24原创 2013-09-20 14:21:53 · 1253 阅读 · 0 评论 -
linux-2.6.32在mini2440开发板上移植 ---按键驱动程序移植
编者:按键驱动程序涉及到linux中断程序的编写。1、按键原理图。2、驱动程序的编写移植。在/linux-2.6.32.2/drivers/char/目录下创建一个新的驱动程序文件mini2440_buttons.c,内容及详细注释如下:#include #include #include #include #include #inc原创 2013-09-20 14:36:13 · 1111 阅读 · 0 评论 -
linux-2.6.32在mini2440开发板上移植 ---LED 驱动程序移植
LED 驱动程序移植编者;对于led的驱动程序,很多文章都有详细的介绍,我的博客里面有一篇专门详解这个的。需要看的,可以找下。led灯的驱动其实就代表了I/O口的驱动。在linux系统下,操作一个I/O口,可以说实在是麻烦至极与裸机操作相比较的话。这里简介移植过程,没写分析。1 LED 驱动原理这个就给个图就够了,搞驱动要连这个都搞不懂,那就完了。2、驱原创 2013-09-20 14:32:04 · 963 阅读 · 0 评论