ARM
文章平均质量分 90
yimiyangguang1314
对C++ ,Linux 情有独钟
工作经验总结:
工作即修行
展开
-
S3C6410启动模式介绍
作者:ARM-WinCE目前的ARM处理器都支持多种启动模式,S3C6410和以前的Samsung的ARM处理器一样,通过外部管脚OM[4:0]的拉高拉低来决定是从哪个存储设备上启动。我认为S3C6410的User Manual并没有说的很清楚,所以我在最开始使用的时候,也对其启动模式有一些误解,下面就我个人的理解,介绍一下S3C6410的启动。先读一下S3C6410 User M转载 2012-01-31 11:18:48 · 710 阅读 · 0 评论 -
S5PV210调试WM8960 总结
最新由于项目需要,调试S5PV210开发板 Linux系统上面的音频功能,我们选择的音频编解码芯片是WM8960,连接到CPU的IIS接口,调试过程中遇到了一系列的问题,现总结如下: 调试WM8960使之能播放音频,时钟的配置是很重要的一部分,首先我们需要确定时钟的配置是否正确。Linux启动以后,使用示波器测量 IIS的三个时钟CDClock(Codec Clock ),SC原创 2013-06-04 17:46:11 · 13784 阅读 · 2 评论 -
AM335x支持KSZ8863调试总结
最近由于对客户支持需要,接触到交换机芯片KSZ8863,由于以前未接触过这款芯片,故技术支持过程中也越到了一系列的问题,需要对问题总结,积累,方便遇到相同情况的朋友。 在客户需求中,需要组建环形网络,也就是A设备接B设备,B设备接C设备......,,要求A,B,C...设备之间可以进行网络通信。组建环行网络的原因主要是为了节约成本(可以不用交换机),方便布线。满足客户这原创 2015-02-12 11:28:56 · 18040 阅读 · 15 评论 -
Exynos4412 Android4.4 平台 WiFi 功能移植 第一篇
近期需要把WiFi无线网络功能移植到在iTOP4412开发平台,查阅了相关资料,经过一段时间的研究、调试,终于成功的将WiFi功能移植到了开发板上面,这里笔者记录移植过程及注意事项,方便以后工作需要。 iTOP4412开发板的WiFi模块与板卡之间的连接采用SDIO接口,WiFi硬件模块使用的是MTK的MT6620芯片,MTK提供了Android4.0及Android4.4的driver,原创 2015-05-03 12:32:40 · 5170 阅读 · 0 评论 -
Exynos4412 Android4.4 平台 WiFi 功能移植 第四篇
HAL层移植 HAL层移植相对简单,MT6620 采用的是Android的WiFi架构,没有经过修改,按照MTK的指导文档移植即可,这里需要注意的是wifi.c文件和init.connectivity.rc文件. 1.5.1 wifi.c文件 wifi.c文件的路径iTop4412_KK4.4/hardware/libhardware_legacy/wifi.c原创 2015-05-03 12:53:46 · 5302 阅读 · 0 评论 -
Exynos4412 Android4.4 平台 WiFi 功能移植 第二篇
概述 iTOP4412开发板采用的是Linux 3.0.15 版本,MTK官方给的移植Porting没有说明针对具体的 kernel版本,由于是Android4.4,所以kernel应该是3.0以后的版本或者更高支持; 首先按照PoringGuid的指导说明,把New和Modify文件夹下面关于kernel部分的修改放到我们的kernel代码里面,MT6620的驱动分两个部分原创 2015-05-03 12:42:04 · 4143 阅读 · 0 评论 -
Exynos4412 Android4.4 平台 WiFi 功能移植 第三篇
用户态空间下面我们描述一下采用Linux系统和Android系统的用户都需要注意的地方: 驱动层移植完成后, MTK的Porting Guid会告诉你需要在用户态运行wmt_launcher工具,作为后台的一个服务程序运行,该服务会配置串口的工作参数,下载固件补丁到MT6620中,他的源代码相对比较简单,只有一个.c文件: 原始文件位于MTK发布包:APEX_Andr原创 2015-05-03 12:50:41 · 3868 阅读 · 0 评论 -
Exynos4412 Android4.4 HDMI Porting Guid 第二篇
1.2 硬件相关部分下图为iTop4412开发板底板HDMI接口引脚定义:下图为iTop4412开发板核心板HDMI相关引脚原理图:原理图结合HDMI接口定义标准我们可以获知:1 TMDS_D0- TMDS_D0+, TMDS_D1- TMDS_D1+, TMDS_D2- TMDS_D2+ 三对数据线用于传输视频和音频及控制信号;2 TMDS_CLK+ TMDS_CLK- 为HDMI传输提供时钟源原创 2015-07-10 18:27:57 · 4740 阅读 · 0 评论 -
Exynos4412 Android4.4 HDMI Porting Guid 第一篇
1.1概述近期需要把Android4.4 KitKat 的HDMI 高清输出功能移植到iTOP-4412 开发平台,查阅了相关资料,经过一段时间的研究、调试,终于成功输出1080P的图像到电视,当然也支持720P的输出了,这里笔者记录移植过程及注意事项,方便有相同需求的客户作为技术参考。1.1.1 HDMI**基础知识**HDMI(High-DefinitionMultimedia Interf转载 2015-07-10 17:58:03 · 2427 阅读 · 0 评论 -
Exynos4412 Android4.4 HDMI Porting Guid 第三篇
1.4 Android空间Android4.4系统是支持HDMI输出显示的,主要体现Androd框架层的支持,及用户设置界面关于HDMI参数设置。下面我们看一下Android的图形显示系统框架:HDMI的输出是由 SurfaceFlinger控制Mali Display(HW Composer)输出的,我们会从HDMI HAL层代码看到 HW Composer硬件合成器输出图像到HDMI显示设备原创 2015-07-10 18:29:43 · 5529 阅读 · 0 评论 -
关于以太网的MAC和PHY
问:如何实现单片以太网微控制器?答:诀窍是将微控制器、以太网媒体接入控制器(MAC)和物理接口收发器(PHY)整合进同一芯片,这样能去掉许多外接元器件。这种方案可使MAC和PHY实现很好的匹配,同时还可减小引脚数、缩小芯片面积。单片以太网微控制器还降低了功耗,特别是在采用掉电模式的情况下。问:以太网MAC是什么?答:MAC就是媒体接入控制器。以太网MAC由IEEE-802.3以太网标准转载 2013-01-04 11:33:22 · 13549 阅读 · 2 评论 -
Linux驱动直接访问控制器的操作方法
在开启MMU之前,你可以直接用物理地址访问。在开启MMU之后,你需要先将物理地址映射为虚拟地址,然后用虚拟地址访问。还是绝个简单的例子,比如某一个外设的寄存器物理地址为: regaddr = 0x0200000,要读出/写入的值为value(unsigned int类型);那么: 在开启MMU之前: 读: value = *(volatile unsigned int转载 2012-08-20 11:00:31 · 1559 阅读 · 0 评论 -
S3C6410处理器介绍
S3C64xx系列的应用处理器芯片是三星主推的,三星目前推出了S3C6400和S3C6410,都是基于ARM11架构的,而且硬件管脚兼容,应该说大致的功能基本相同,比较明显的区别就是S3C6410带有2D/3D硬件加速。大致看了一下,S3C6410是一个强大的应用处理器,我不是在这里做广告,呵呵,因为我正在使用它,有了它,可以做很多东西。 下面,我对S3C6410做个简单介绍,该芯片大翻译 2012-02-03 10:10:10 · 1040 阅读 · 0 评论 -
ARM软件访问硬件的核心理论(2.1)---S3C6410 时钟分析
S3C6410的ARM内核是 ARM1176JZF-S ,在1.1v下最高可以跑 533MHz,1.2v可以跑 667MHz。 S3C6410用的是可以使用外部晶振(XXTIpll)和外部时钟(XEXTCLK),两种方式输入时钟信号.它由跳线OM[0]决定,这一位为0,选择XXTIpll .否则选择 XEXTCLK.APLL/MPLL/EPLL S3C6转载 2012-02-24 16:15:05 · 1507 阅读 · 0 评论 -
S3C6410的时钟频率
S3C6410有三个PLL,分别为APLL、MPLL和EPLL。其中APLL产生ACLK,给arm core使用,MPLL产生HCLKX2、HCLK和PCLK,EPLL产生特殊的时钟,比如为USB提供48MHz时钟,还有为IIS总线(WM9714芯片挂载在IIS总线上-OK6410开发板)提供的24MHZ时钟. ARM core的时钟手册上最大标明为667MHz,实际使用转载 2012-02-24 17:12:57 · 4483 阅读 · 0 评论 -
Linux命令查看X86平台 ARM平台上可执行文件与库的依赖关系
PC Linux上查看库依赖依赖关系直接使用ldd 命令即可,可以查看可执行程序,比如:root@forlinx:~# ldd /bin/mvlinux-gate.so.1 => (0x00c7b000)libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0x00136000)librt.so.1 => /lib/i原创 2012-04-27 11:01:39 · 9477 阅读 · 0 评论 -
s3c6410 开发板Linux系统支持 K9GAG08U0E的方法(第一篇)
由于NandFlash硬件升级比较快,公司去年一直在使用三星的K9GAG08U0D,现在MLC NandFlash 升级到了第二代,K9GAG08U0D 很快就会处在停产的状态,未雨绸缪,公司选型了K9GAG08U0E 来替代原有的NandFlash芯片。起初。本以为把新Nandflash ID信息增加到Uboot 和 Linux内核的NandFlash ID 列表文件中即可,也就是Uboot原创 2012-04-17 11:50:33 · 8885 阅读 · 3 评论 -
s3c6410 开发板Linux系统支持 K9GAG08U0E的方法(第二篇)
在上一篇中我们重点介绍了K9GAG08U0D 和 K9GAG08U0E的区别,除了这些外还有一个需要重点关注的地方,下面我们详细讲解。 Uboot从NandFlash启动第一步就是把NandFlash的前8K代码拷贝到s3c6410内部的SRAM中,然后运行,这8K的代码会从NandFlash中把完整的Uboot代码拷贝到6410开发板片外内存中,我这里使用的是256M的DDR,原创 2012-04-17 17:06:13 · 5249 阅读 · 5 评论 -
linux下dnw编译使用
百度一下linux下的dnw 即可找到诸多下载信息,下载文件中包含两个文件,一个是dnw的usb驱动程序secbulk,还有一个是dnw的应用程序。需要对于这两个文件分别进行编译。其中secbulk的编译过程方法和内核驱动编译一样,dnw应用程序的编译可直接使用命令 gcc –o dnw dnw.c 。 要注意的是:网上一般下载的usb驱动是基于2240的,而如果三星的6410,情况不转载 2012-04-19 08:51:33 · 1165 阅读 · 0 评论 -
usb摄像头在s3c6410平台上的测试
1 luvcview是一个开源项目,专注于UVC摄像头的测试,只要您的摄像头支持UVC驱动,即可使用luvcview测试程序,如何知道自己的摄像头是不是支持UVC驱动呢?在这个网站上查一下,看看自己摄像头的ID是不是在支持的列表中,http://www.ideasonboard.org/uvc/2 我们在luvcview这个项目的基础上进行了修改,使之能够在s3c6410平台上运行原创 2012-07-06 10:29:34 · 8628 阅读 · 8 评论 -
ALSA --- amixer控制声卡驱动实现Line-in功能
开发环境:Ubuntu12.04 开发板:OK6410,Linux3.0alsamixer是Linux 音频架构ALSA工具的其中一个,用于配置音频的各个参数。alsamixer是基于文本下的图形界面的,可以通过键盘的上下键,左右键等,很方便地设置需要的音量,开关某个switch(开关)等等操作,下图是在Ubuntu12.04系统上图形配置界面,操作非常的简单,这里使用的是U原创 2012-07-17 16:29:11 · 22733 阅读 · 1 评论 -
Trick on the Version Magic Number of Linux Kernel
Trick on the Verson Magic Number of Linux KernelMAR 15TH, 2013 | COMMENTSRecently, I was working on building a modified wireless driver for Nexus 7 to support monitor mode. There are quite a few thin转载 2015-08-07 17:50:35 · 2708 阅读 · 0 评论