- 博客(42)
- 资源 (21)
- 收藏
- 关注
原创 Tiny4412 led之build JNI实现
PC机平台:ubuntu 12.04.5硬件平台:Tiny4412标准版+android5.0上一篇:Tiny4412 led之NDK JNI实现,介绍的是通过NDK工具进行JNI开发,*.so文件是通过NDK工具进行编译生成的,这次就介绍如何通过arm-linux-gcc编译生成对应的*.so文件,深入了解JNI底层的开发流程;驱动代码、JNI接口、android
2016-04-05 20:41:28
906
原创 Tiny4412 led之NDK JNI实现
PC机平台:ubuntu 12.04.5硬件平台:Tiny4412标准版+android5.0Tiny4412硬件电路从电路原理图可以知道LED灯连接到处理器的GPM4的0-3端口,且LED被上拉到3.3V的源,只有GPIO口输出低电平时就能点亮LED灯;GPM4寄存器只要把GPM4CON对应的区域设置为0x1且GPM4DAT对应bit设置为0,
2016-03-31 11:43:42
2040
原创 MTK 前后使用相同类型的Camera
由于实际项目开发中,前后摄像头使用前后相同类型的Camera,前后Camera经FAE优化使得驱动参数不一致,此时需要使用两份不同的驱动文件;这就涉及到如何在同一款camera上同时使用两套不同的驱动;硬件电路跟上一篇是一致的就不重复帖图了,请看:MTK Camera驱动移植驱动兼容原则:“另外一份驱动使用自定义sensor ID 和sensor name中,在系统读取sensor
2016-03-30 16:04:29
2918
原创 MTK Camera驱动移植
对于MTK Camera驱动移植一般分为四部分:1、硬件IO口配置;2、Camera驱动移植;3、上电时序;4、修改i2c控制器;硬件电路:1、GPIO配置打开 mediatek\dct\DrvGen.exe 选择 mediatek\custom\xiaoxi\kernel\dct\dct\codegen.
2016-03-30 14:52:42
13186
原创 MTK 电池曲线配置
硬件平台:MT8382网上有很多关于电池曲线配置的文档,定位到具体的文件和数据结构,但是具体的数据配置却是没有,由于工作期间需要配置到对应的电池曲线;特意把修改过程使用到的数据记录下来;电池曲线需要修改 mediatek\custom\pro\kernel\battery\battery\cust_battery_meter_table.h 文件中的BATTERY_PROFILE_STRU
2016-03-29 18:03:50
11914
原创 MTK TP驱动移植
对于MTK TP驱动移植一般分为六部分:1、硬件IO口配置;2、TP驱动移植;3、I2C通信;4、中断触发;5、数据上报;6、虚拟按键;硬件电路:1、GPIO配置打开 mediatek\dct\DrvGen.exe 选择 mediatek\custom\xiaoxi\kernel\dct\dct\cod
2016-03-28 17:52:18
9999
1
原创 MTK LCM驱动移植
对于LCM驱动移植,一般分为三部曲:1、硬件IO口配置;2、确保LCM背光能够正常点亮;3、LCM驱动移植;硬件电路:1、GPIO配置打开 mediatek\dct\DrvGen.exe 选择 mediatek\custom\xiaoxi\kernel\dct\dct\codegen.dws 配置文件配置LCM PWM
2016-03-26 11:18:12
15077
原创 Tiny4412标准版,编译u-boot并烧录到SD卡,从SD卡启动后只打印‘OK’两个字符
本人开发板是tiny4412(1G+4G)的标准版,由于开发板自带的光盘资料无法读取,所以就从友善官网下载到最新的资料;然而在做uboot烧录实验的时候,发现烧录完成从SD卡启动后只打印“OK”两个字符,无法正常进入uboot;然后在网上和友善的论坛也看到有朋友也是出现这样的问题,最后在一个好友那边得知友善的tiny4412标准版有新旧之分,差别就是更换了不同eMMC,所以导致了有些没有更
2016-03-21 14:30:51
2831
原创 mini2440 P35 : 告别一线触控,还原四线触控
告别一线触控,还原四线触控 在群里看到很多同学使用友善的开发板,在触摸屏课程上功能无法实现而烦恼,而我本人在这之前已经能够正常使用四线触控的功能了,于是想帮助触摸屏不能正常使用的同学“告别一线触控,还原四线触控”;使用友善公司的开发板学习触摸屏裸机驱动或linux触摸屏驱动的时候,明明根据手册设置好相关的TS控制寄存器之后,但不管怎样摁触摸屏就是不会产生中断,使用例程也是一样没
2015-05-19 16:32:44
1957
原创 读入dir.txt,把dir.txt中的文本转换成一棵树
最近几天突然拿到这样的一道题:读入dir.txt,把dir.txt中的文本转换成一棵树dir.txt中文本格式类型如下(节点重名不用理会)a.c.d.za.c.cb.aa.b.c.d转换成如下格式的文本:root|---a |---b |---c |---d |---c |--
2015-03-27 22:38:47
1233
原创 嵌入式求职面试1
今天下午到网路通电子面试嵌入式驱动开发一职,至于面试机会是怎么样来的,就得看自己的努力和技巧了,在这就不扯这个问题了,还是说说面试过程吧;前往公司面试一路也算是有点小波折吧,在面试通知里边可知学院和上社两个BRT站都能去,我就选择上社下车,一边开导航,一边找,一路走呀走呀,一不小心走错路口,从上社走到学院,郁闷,然后往回走,总算到公司了;上去见到前台MM,我说来面试的,她说是不是面试驱动开发一
2015-03-24 18:20:07
705
原创 buildroot简单指导
公司基于buildroot开发, 本人是应届毕业生,刚步入公司,对buildroot不会使用同时也存在很多疑惑,经过小段时间的摸索和上司的简单指导,总算摸清了buildroot常用的一些配置,故此分享下,希望很帮助到初涉buildroot的友友们,如本人有理解错的地方也希望大家拍砖和纠正; 对于buildroot我就不做过多的阐述了网上很多资料都有阐述;PC环境 Ubuntu 10.
2015-02-11 10:43:24
10214
1
原创 雷凌RT5372无线网卡,搭建AP和STA,WPS(WSC)连接
1. 阐述前段时间,使用两块雷凌RT5372无线网卡,在Linux下搭建AP和STA,利用WPS(WSC)方式进行连接。调试过程也没那么复杂,在此也简单做个小结; WPS或WSC其实是指相同的东西,WPS的概念就不累赘讲解了,网上很多资料有阐述;如,一键加密WPS使用指南 磊科无线路由器方式进行连接,深入理解Android:Wi-Fi,NFC和GPS,WPS以及它的两种方式PIN与PB
2015-02-09 10:16:51
6840
转载 新型的按键扫描程序
不过我在网上游逛了很久,也看过不少源程序了,没有发现这种按键处理办法的踪迹,所以,我将他共享出来,和广大同僚们共勉。我非常坚信这种按键处理办法的便捷和高效,你可以移植到任何一种嵌入式处理器上面,因为C语言强大的可移植性。同时,这里面用到了一些分层的思想,在单片机当中也是相当有用的,也是本文的另外一个重点。对于老鸟,我建议直接看那两个表达式,然后自己想想就会懂的了,也不需要听我后面的自吹自擂
2014-07-20 22:04:08
509
转载 _IOC_NR, _IOC_TYPE, _IOC_SIZE, _IOC_DIR
_IOC_NR, _IOC_TYPE, _IOC_SIZE, _IOC_DIR
2014-06-08 20:23:44
6334
1
转载 linux内核中常用的数据结构和操作详解
目前在学习研究linux系统,作为一名初学者,感觉很吃力,通过网友指点和自己琢磨,总结出,首先理解linux关键数据结构,对理解linux系统大有裨益,故总结下文——详述相关关键数据结构。 1. 前言本文介绍linux内核中一些常用的数据结构和操作。2. 双向链表(list)linux内核中的双向链表通过结构 struct list_head来将各个
2014-06-06 20:56:20
2494
转载 list_entry()详解
list_entry()详解Linux内核中,获取节点地址的函数list_entry()非常常用,由于其定义有点晦涩,先解析如下:list_entry的宏定义:#define list_entry(ptr, type, member) / ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->memb
2014-06-06 20:53:57
715
转载 如何下载百度网盘已失效资源链接
如何找到资源呢,方法如下:失效链接http://pan.baidu.com/share/link?shareid=76297&uk=3238350839获取323835083的部分复制下来比方这是百度的默认网盘分享主页(3238350839部分为ID)http://pan.baidu.com/share/home?uk=1899044832把上面那个
2014-06-06 15:20:25
2770
转载 makefile模块编译模板
Makefile模板为:ifneq ($(KERNELRELEASE),)obj-m := memdev.oelseKDIR := /home/study/4-3-1/linux-2.6.29all: make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-lin
2014-06-03 11:45:14
1206
转载 Uboot启动参数说明
uboot 源代码的tools/ 目录下有mkimage 工具,这个工具可以用来制作不压缩或者压缩的多种可启动映象文件。mkimage 在制作映象文件的时候,是在原来的可执行映象文件的前面加上一个0x40 字节的头,记录参数所指定的信息,这样uboot 才能识别这个映象是针对哪个CPU 体系结构的,哪个OS 的,哪种类型,加载内存中的哪个位置, 入口点在内存的那个位置以及映象名是什么roo
2014-06-01 19:43:55
1101
转载 Uboot 启动参数说明:
29.Uboot 启动参数说明:bootcmd=cp.b 0xc4200000 0x7fc0 0x200000 ; bootm// 倒计时到 0 以后,自动执行的指令bootdelay=2baudrate=38400// 串口波特率,一般使用 38400ethaddr=08:00:3e:26:0a:5cbootfile="uImage"ethact=lan911x
2014-06-01 19:42:49
2690
转载 Linux内核linux-2.6.18.2 编译
先把linux-2.6.18.2.tar.bz2 复制到/usr/src/ 的下面tar –jxvf linux-2.6.18.2.tar.bz2需要#ln -s linux-2.6.18.2 linux#cd linux然后执行:#make mrproper 把原来编译产生的垃圾删除(如果第一次编译可以不需要执行) 配置内核可以根据需要与爱好使用下面
2014-05-29 20:51:35
1901
转载 #if defined和#if !defined
因为对于一个大程序而言,我们可能要定义很多常量( 不管是放在源文件还是头文件 ),那么我们有时考虑定义某个常量时,我们就必须返回检查原来此常量是否定义,但这样做很麻烦.if defined宏正是为这种情况提供了解决方案.举个例子,如下: #define .... #define .... .... .... #define a 100 ....
2014-05-25 16:58:34
619
转载 ARM寄存器别名及作用
根据“ARM-thumb 过程调用标准”:1, r0-r3 用作传入函数参数,传出函数返回值。在子程序调用之间,可以将 r0-r3 用于任何用途。被调用函数在返回之前不必恢复 r0-r3。---如果调用函数需要再次使用 r0-r3 的内容,则它必须保留这些内容。2, r4-r11 被用来存放函数的局部变量。如果被调用函数使用了这些寄存器,它在返回之前必须恢复这些寄存器的值。3,
2014-05-23 21:50:26
1637
转载 mini2440下载到nandflash中时地址设置是0x30000000
近来又开始学习韦东山书上的裸机驱动,在运行SDRAM中的代码的时候发现不能正确运行,当初下载的方法是通过mini2440自带的supervivi的d命令烧写程序。现在想想真是犯了很多错误。在韦东山的书上不止一次强调这些裸机程序要下载到nandflash上运行,但我都是通过supervivi的d命令来下载到SDRAM中运行,呵呵,能正常运行才怪。现在稍微总结下: 1.这些裸机程序
2014-05-18 21:26:03
1889
转载 ARM中LDR伪指令与LDR加载指令
ARM指令集中,LDR通常都是作加载指令的,但是它也可以作伪指令。LDR伪指令的形式是“LDR Rn,=expr”。下面举一个例子来说明它的用法。COUNT EQU 0x40003100……LDR R1,=COUNTMOV R0,#0STR R0,[R1]COUNT是我们定义的一个变量,地址为0x
2014-05-18 10:11:55
446
转载 ARM指令中特殊符号意义
ARM指令中特殊符号意义ARM中常用的一些代表指令的符号特殊符号 对应指令 含义 = DCB 分配一片连续的字节存储单元并用指定的数据初始化& DCD 分配一片连续的字存储单元并用指定的数据初始化% SPACE 分配一片连续的存储单元^ MAP 定义一个结构化内存表的首地址# FILED 定义一个结构化内存表的数据域(经常和MAP
2014-05-15 22:15:59
2698
转载 H-Jtag/Jlink 初始化序列
初始化序列(Init sequence)按下面的填,也是从H-Jtag的script扒出来的,我简单做了下注释。##-------Action-----Value0------Value1Setmem 32-Bit 0x53000000 0x00000000 ; pWTCON , 看门狗定时器控制寄存器Setmem 32-Bit 0x4A000008 0xFFFFFFFF ;
2014-05-15 14:39:44
857
转载 keil4 启动代码关于norflash、nandflash拷贝/开发环境基地址/RO段、RW段、ZI段/加载域、执行域 总结
软件开发环境:keil4硬件开发平台:mini2440启动代码参考:《ARM处理器裸机开发实战》TQ2440启动代码1.软件开发环境加载域、执行域总结norflash启动 首先看下图: 如为上图所示设置,表明RO段基地址为0x0,RW的基地址0x30000000,则表明RO段在Norflash中执行
2014-05-12 20:33:09
1384
转载 关于adr指令的理解
之前在阅读arm的汇编代码时,碰到了adr指令,查arm的指令手册,只说该指令是采用相对地址的,但这个相对地址应该怎么理解,却没有具体说明。之后在网上以adr指令为关键字进行搜索,也没有找到进一步的知识。结果,今天在搜索android资料的时候,意外的发现了adr指令与ldr指令的不同,一下子解决了心中的问题。以adr指令与ldr指令对比作为关键字,甚至可以搜到好几篇文章,实在是......
2014-05-11 15:10:29
711
转载 mini2440---start.S注释
mini2440---start.S注释 /* * armboot - Startup Code for ARM920 CPU-core * * Copyright (c) 2001 Marius Gr鰃er * Copyright (c) 2002 Alex Z黳ke * Copyright (c) 2002 Gary Jennejohn
2014-05-11 10:59:43
648
转载 如何使用Jlink烧录BIOS到GEC2440
如何使用Jlink烧录BIOS到24401、 背景:粤嵌教育嵌入式培训班ARM部分第一节课内容是带学生玩板子,烧BIOS(即bootloader)到flash,然后使用BIOS程序烧录linux内核镜像、根文件系统、WinCE系统NK等。拿到开发板光盘一看,烧录工具竟然是老掉牙的SJF2440···我的笔记本没有并口,也懒得去研究这个已经淘汰过时的烧录工具了,于是乎花了点时间研究
2014-05-10 15:53:43
1167
转载 MDK + Jlink + SDRAM 裸奔2440教程
DK + Jlink + SDRAM 裸奔2440教程1、背景很多人学习嵌入式编程都是从裸机开始的(我个人也是)。这并不是偶然,想要零基础入门嵌入式开发,玩转裸机绝对是最好的入手点。这样至少可以培养以下必备技能:l CPU体系结构,编程模式及汇编语言、指令结构的知识l 芯片内部外设,如串口、定时器、LCD、Nandflash等的相关编程知识
2014-05-10 15:51:40
1026
转载 Jlink调试2440进不了中断
很多人学习2440都是从裸机开始的。刚开始的小菜LED,然后定时器、按键这些常用内部外设,最后则是LCD、Nand等复杂外设。 用Jlink裸机调试2440小程序时,中断的调试是一个重要内容。像定时器、按键等外设调试都需要用到中断。 今天在调试以前写的定时器测试工程时活见鬼的总是不成功。因为是以前调试ok的工程,所以可以肯定代码没有错的,应该是调试方面的错误。于是乎:(1)
2014-05-10 15:50:11
783
转载 C语言的变参函数设计
语言的变参函数设计在C语言中,函数参数的传递方式有值传和址传.值传是把实参的一个专用的、临时的复制值给被调函数中相应的形参被调用函数使用、修改这个传来的复制值,不会影响实参的值.址传则是把变量(实参)的地址传给被调函数.被调函数通过这个地址找到该变量的存放位置,直接对该地址中存放的变量的内容进行存取操作.因此,在被调用函数中可以修改实参的值.这也是函数参数址传的优点.无论是值传
2014-05-09 14:04:41
712
转载 ADS1.2的工程建立与配置以及其中文件的分析
一:ADS.12的工程建立与配置① 新建工程类型为 ARM Excuteable Image。用于由 ARM 指令的代码生成一个 ELF 格式的可以执行映象文件。② 再把lib与inc文件夹拷贝到所建工程的文件夹中,inc文件夹中包含了很多.h文件,其中.c文件在lib中。(后面将对这些文件的作用与含义进行分析)。③ 把需要用到的函数所在的.c文件添
2014-05-07 20:36:05
1423
转载 mini2440裸机小结
工作模式1 用户模式2 快速中断模式3外部中断模式4管理模式5数据访问终止模式6系统模式7未定义模式可通过软件改变,或外部中断改变模式。除去用户模式和系统模式其他5种模式都叫异常模式。寄存器37个32位寄存器,31个通用寄存器,6个状态寄存器。不同模式下访问寄存器不同。几个重要的寄存器:1,CPSR 程序状态寄存器所有的处理器模式都可以访
2014-05-07 20:29:09
595
转载 mini2440之Main分析
/**************************************************************** NAME: u2440mon.c DESC: u2440mon entry point,menu,download HISTORY: Mar.25.2002:purnnamu: S3C2400X profile.c is ported for S3C2
2014-05-07 19:55:57
552
转载 关于MPLL的学习
关于MPLL的学习分类: TQ24402012-09-26 17:03 316人阅读 评论(0) 收藏 举报工作ciisS3C2440有两个PLL(phase locked loop)一个是MPLL,一个是UPLL。MPLL用于CPU及其他外围器件,UPLL用于USB。用于产生FCLK, HCLK, PCLK三种频率,这三种频率分别有不同的用途: FCL
2014-05-07 19:41:45
975
MTK_Wi-Fi_STA_Software_Programming_Guide_v1.2
2015-02-09
MTK_Wi-Fi_SoftAP_Software_Programming_Guide_v2.4
2015-02-09
2011_0517_RT5370_RT5372_RT5390U_Linux_AP_V2.6.0.0_DPA.tar.bz2
2015-01-15
DPA_RT5572_LinuxSTA_2.6.1.4_20121211.tar.bz2
2015-01-15
STC12LE5A60S2_MP3+U盘制作
2014-09-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人