自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

girlkoo的专栏

专注于嵌入式、软件开发,热爱技术交流

原创 I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之声卡驱动移植

经过前面的移植,tqimx6q已经可以正常驱动触摸屏了,本文我们来移植声卡驱动。 DTS编写 由于tqimx6q搭载的声卡是sgtl5000芯片,因此,参考dts目录下其它开发板的相应信息,我们可以在DTS中添加如下内容:/ { ... regulators { ... r...

2015-05-19 23:58:21 13445 9

原创 I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之触摸屏驱动移植

之所以说是驱动移植是因为之前已经在TQ210、AM335x两个平台上移植过了,因此,仅需要少量修改就可以将驱动移植到imx6q。下面开始触摸驱动移植。 DTS编写 参考其它DTS的i2c设备写法,我们可以添加如下内容: &i2c1 { clock-frequency = ; pinct...

2015-05-18 00:31:55 9335 9

原创 I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之LCD移植

经过前面的移植,eMMC已经可以在tqimx6q上正常运行了,本文将来移植LCD驱动。 DTS编写 imx6的LCD控制器与之前的芯片略有不同,详细的信息可以阅读芯片手册。参考sabrelite开发板的DTS,我们可以添加如下内容:/ { ... aliases { mxcfb0 =...

2015-05-16 23:20:51 13113 4

原创 I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之eMMC移植

前一篇文章已经移植好CAN,本文来移植eMMC。eMMC的移植一般来讲比较简单,因为MMC驱动是由官方维护的,一般来讲,不会有什么问题,对我们来说,只需要正确的配置各个pin脚的复用关系,这种情况也是DTS最擅长的。下面我们开始eMMC移植。 DTS编写 参考sabresd的DTS,我们可以如下编...

2015-05-14 20:15:07 8192 0

原创 I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之CAN移植

经过前面的移植,tqimx6q已经完美支持网卡,现在,我们来移植CAN。其实这里所谓的移植,仅仅是配置DTS,使内核能够检测到CAN设备,CAN驱动本身是freescale维护的。下面开始CAN的移植。 DTS编写 参考imx6q其它的DTS编写方式,我们可以如下编写DTS文件: ... &am...

2015-05-13 20:23:10 6764 4

原创 I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之网卡驱动移植

由于对网卡这块不是很熟悉,误以为网卡驱动也可以简单的配置下DTS就可以正常工作了,实际移植中遇到了些问题。闲话少说,下面开始tqimx6q的网卡驱动移植。 DTS编写 首先在我们的DTS中添加网卡配置,参考sabrelite的DTS,我们可以如下编写: &fec { pinctrl...

2015-05-13 00:29:57 12766 9

原创 I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之USB HOST移植

USB HOST驱动一般都是由芯片厂商维护的,因此,我们仍然只需要配置下DTS即可完成USB HOST驱动的移植。 DTS配置 参考sabresd相关的DTS,在我们的DTS中添加如下内容:/ { ... regulators { compatible = "simple-bu...

2015-05-11 23:34:38 8901 6

原创 I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之UART移植

我们在内核启动时候已经配置系统了UART,但是tqimx6q这块开发板上引出了imx6q的5路TTL接口,其中,uart1和uart2转成232接口,本文将配置这5路Uart接口。 DTS配置 由于内核中已经有imx6q的uart控制器驱动,因此,我们只需要配置各端口的pinctrl即可。根据tq...

2015-05-10 23:24:21 6863 6

原创 I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之KEY、LED

经过前面的移植,内核已经可以在tqimx6q上正常挂载根文件系统了,接下来开始移植各类设备驱动,本文先来移植按键和LED。之所以从按键和LED开始是因为这两种设备的驱动是最简单的。 按键驱动移植 查看tqimx6q的原理图可知,这块开发板有5个按键,其中,除了reset键之外还有个电源键,这个...

2015-05-07 20:37:23 8926 9

原创 I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之根文件系统挂载

经过前面的移植,新版BSP的uboot和kernel已经能够在tqimx6q开发板上运行了,接下来我们来挂载文件系统。 DTB整理 前面的文章中提到,新版BSP的DTB管理感觉不是太好,在之前移植的BSP上我发现即便有根文件系统,内核也会挂掉,由于原来的DTS文件中配置内容太多,不好确定问题的源头...

2015-05-04 00:03:27 10756 12

原创 I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之kernel移植

前篇文章已经在tqimx6q上成功跑起了新版BSP的uboot,本文来配置下新版BSP的kernel,使kernel能在tqimx6q上正常启动。 准备工作 每次移植kernel的时候都会做的工作就是找到与当前开发板接近的config,其实uboot移植的时候也是一样的。由于tqimx6q的芯片是...

2015-05-03 13:31:30 30194 18

原创 I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之u-boot移植

前段时间就开始学习I.MX6Q了,但是最近工作实在是忙,间断了一些时间了。为了提高移植效率,还是考虑移植Freescale维护的3.10版本的内核。 源码获取 Freescale维护的3.10的内核是使用git管理的,但是直接使用git下载代码会比较慢,下面是我下载好的uboot和kernel: ...

2015-05-01 23:38:47 24372 43

原创 I.MX6Q(TQIMX6Q/TQE9)学习笔记——内核启动与文件系统挂载

经过前面的移植,u-boot已经有能力启动内核了,本文主要来看下如何通过之前移植的u-boot来启动内核。如果按照前面的文章完成了LTIB的编译,那么,Linux的内核应该就会出现rpm/BUILD/目录下,接下来,我们就开始移植这个3.0.35版本的内核到TQIMX6Q。 内核的编译 为了简化内...

2015-03-25 21:08:04 20944 13

原创 I.MX6Q(TQIMX6Q/TQE9)学习笔记——U-Boot移植

其实Freescale的BSP移植文档已经将u-boot的移植步骤讲述的非常详细了,但为了以后方便查阅,还是按照自己的理解记录在这里。 获取源码 根据前一篇文章搭建好LTIB环境后就可以非常方便的导出u-boot源码了。切换到ltib目录,并运行如下指令: ./ltib -m prep -p ...

2015-03-23 09:40:11 27262 10

原创 I.MX6Q(TQIMX6Q/TQE9)学习笔记——LTIB安装配置

Freescale提供了I.MX6的BSP开发包,可以在Freescale的官网下载到。为了与天嵌提供的版本一致,本文使用的BSP版本是:L3.0.35_4.1.0_130816_source,这版本的内核是3.0.35版本的,u-boot是2009.8版本的。使用这个版本的BSP可以充分使用天嵌...

2015-03-23 09:36:25 13354 6

原创 I.MX6Q(TQIMX6Q/TQE9)学习笔记——开发板的选择

其实入手这块TQIMX6Q的时候手头上已经有一块E9开发板了,但还是选择了TQIMX6Q开发板,主要原因是个人感觉开发板更适合学习或研发,E9卡片电脑更适合应用,而且这两款单板使用的是相同的芯片(Freescale的IMX6Q),因此,学习过程中还可以在开发板上实验,然后在卡片上验证。本文主要是简...

2015-03-23 09:35:17 19170 11

原创 AM335x(TQ335x)学习笔记——USB驱动移植

对于AM335x来讲,TI维护的USB驱动已经非常完善了,本文称之为移植,实际上仅仅是配置内核选项使能USB HOST/OTG功能。废话少说,直接动手开启AM335x的USB驱动配置项。 Step1. 配置内核支持USB 默认的配置项没有配置USB相关的选项,但是DTS已经配置好了,我们不需要对D...

2014-12-26 22:33:29 14376 1

原创 AM335x(TQ335x)学习笔记——Nand&&网卡驱动移植

移植完成声卡驱动之后本想再接再励,移植网卡驱动,但没想到的是TI维护的内核太健壮,移植网卡驱动跟之前移植按键驱动一样简单,Nand驱动也是如此,于是,本人将Nand和网卡放在同一篇文章中介绍。介绍之前先感慨一下:TI的维护的内核真的很健壮,DTS真的很强大。

2014-12-23 23:04:49 11966 1

原创 AM335x(TQ335x)学习笔记——WM8960声卡驱动移植

经过一段时间的调试,终于调好了TQ335x的声卡驱动。TQ335x采用的Codec是WM8960,本文来总结下WM8960驱动在AM335x平台上的移植方法。Linux声卡驱动架构有OSS和ALSA两种架构,目前最常用的架构是ALSA,本文也使用ALSA架构对WM8960驱动进行移植。 ASoC是...

2014-12-20 16:25:52 21570 18

原创 AM335x(TQ335x)学习笔记——触摸屏驱动编写

前面几篇文章已经通过配置DTS的方式完成了多个驱动的移植,接下来我们解决TQ335x的触摸驱动问题。由于种种原因,TQ335x的触摸屏驱动是以模块方式提供的,且Linux官方内核中也没有带该触摸屏的驱动源码,单纯的配置DTS是无法完成TQ335x的触摸驱动移植工作的,因此,本文参考内核中原有的pi...

2014-11-26 22:50:44 11726 11

原创 AM335x(TQ335x)学习笔记——LCD驱动移植

本文基于TQ335x进行了LCD驱动的移植,详细的讲述的移植的思路及分析过程。其中,移植的主要手段是修改DTS,捎带一些内核menuconfig,参数调整等。

2014-11-22 21:02:28 19014 4

原创 AM335x(TQ335x)学习笔记——GPIO按键驱动移植

还是按照S5PV210的学习顺序来,我们首先解决按键问题。TQ335x有六个用户按键,分别是上、下、左、右、Enter和ESC。开始我想到的是跟学习S5PV210时一样,编写输入子系统驱动解决按键问题,但是浏览driver/input/keyboard目录时意外的发现了gpio-keys.c,大体...

2014-11-20 23:15:36 15931 1

原创 AM335x(TQ335x)学习笔记——挂载Ramdisk

上篇文章中我们已经能够通过u-boot启动内核了,但是没有能够启动成功,从内核的log中可以看出,内核启动失败的原因是没有挂载到root文件系统,本文将使用busybox制作根文件系统并打包成ramdisk供u-boot启动内核使用。 (1)制作根文件系统 使用busybox构建根文件系统的步骤可...

2014-11-18 23:35:15 11307 14

原创 AM335x(TQ335x)学习笔记——使用dtb方式启动内核

老式的u-boot使用ATAGS的方式启动linux内核,本文使用新式的dtb方式启动内核。 我使用的内核是linux-3.17.2版本,下面开始编译内核。 (1) 解压内核 tar jxf linux-3.17.2.tar.bz2(2)配置linux内核: make ARCH=arm am335...

2014-11-17 23:35:29 20806 11

原创 AM335x(TQ335x)学习笔记——u-boot-2014.10移植

最近移植了下u-boot-2014.10到TQ335x,如果基于am335x evm进行移植,需要修改的地方并不多。 由于TI的am335x evm开发使用了一个eeprom保存了板载配置信息,用来区分不同板子的型号的,而TQ335x没有这个eeprom,因此,需要修改eeprom相关的部分,使u...

2014-11-16 23:44:29 25361 53

转载 嵌入式PowerPC上的扁平设备树FDT

本文在网络上引用甚广,详细的讲述了新版内核dts架构,这里引来详细拜读,本人对原文格式略作调整,原文地址: 嵌入式PowerPC上的扁平设备树FDT 摘 要:设备树的引入减少了内核为支持新硬件而需要的改变,提高代码重用,加速了Linux支持包的开发,使得单个内核镜像能支持多个系统。作为U-B...

2014-02-24 10:31:11 3493 0

原创 常用排序算法——快速排序法

快速排序法是一种高效的排序法,算法的最终性能取决于选取的中间值,直接实现的快速排序法如下:#include #include static int partition( int* array, int start, int end){ int key = array[start]; ...

2013-12-27 10:23:46 3727 1

原创 常用排序算法——堆排序

堆排序的逻辑非常简单,但是效率较高,代码如下:#include #include class heap { public: heap(int* array, size_t len):arr (array), length(len){ size_t point = (l...

2013-12-27 10:17:19 2767 0

原创 常用排序算法——归并排序法

归并排序采用的是分治思想,将数组不断分解为子数组,直到子数组只有一个元素,每次分解对应一个归并函数,归并函数可以将当前分解的两个子数组合并起来。有两种方式可以实现归并排序,第一种是递归方式实现的,代码如下:#include static void merge( int* array, int*...

2013-12-27 10:11:38 3499 0

原创 常用排序算法——冒泡、插入、选择

冒泡排序法是初学者最早接触的排序法,实现比较简单,代码如下:#include void bubble_sort(int *array, int len){ for(int i = 1; i != len; ++i){ for(int j = 0; j != len-i;...

2013-12-27 10:05:34 4864 0

原创 交换二叉树的左右子树——非递归方式

这是华为的一道机试题,其实并不难,不让用递归可以用栈来解决,具体的代码如下:#include #include struct node{ char data ; struct node* left ; struct node* right ; }; struct t...

2013-12-27 09:31:18 8368 0

原创 最短路径算法——Floyd

Floyd算法相比Dijkstra算法最大的区别是计算出了任意点起始到任意点的最短路径,算法也不难理解,需要注意的是三层for循环的顺序问题,k必须为最外层循环,具体的代码如下:#include #include #include void shortest_floyd(const std...

2013-12-24 10:29:14 3196 0

原创 最短路径算法——Dijkstra

Dijkstra的最短路径算法是基于前驱顶点的最短路径计算的,整体上来讲还是比较简单的,下面是代码:#include #include #include void shortestpath( const std::vector >& paths, int from, std...

2013-12-24 10:25:44 3618 1

原创 最小生成树算法——Kruskal

Kruskal算法的原理是先将图中的所有边按照权从小到大排序,然后循环取边,判断添加上该边后是子图中否有闭合回路,如果没有,则添加该边,否则舍弃该边。直到所有的边都遍历一遍。 我认为该算法的核心是排序和判断闭合,判断闭合的原理还没有真正搞明白,不过这种算法很容易记忆,暂且记住!! 下面是具体的代码...

2013-12-20 09:49:36 3281 1

原创 最小生成树算法——Prim

Prim算法是任选一顶点作为起始点,从当前已纳入的顶点与未纳入的顶点间的所有路径中找出权最小的一条进行连接,循环直到所有的顶点都被纳入。 代码如下:#include #include #include #include class graphic { public: graphi...

2013-12-20 09:46:59 3263 0

原创 栈——中缀表达式转后缀表达式

中缀表达式转后缀表达式的算法较为简单,采用栈来实现。规则如下: 遇到数字:直接输出遇到'(':压栈遇到')':持续出栈,如果出栈的符号不是'('则输出,否则终止出栈。遇到符号则判断该符号与栈顶符号的运算优先级,如果栈顶符号的运算优先级...

2013-12-20 09:35:35 21205 6

原创 KMP字符串查找

KMP算法 KMP字符串查找算法的目的是减少不必要的比较次数,举个简单的例子,从字符串A:"abcdeabcdfg"中查找字符串B:"abcdf"。 使用普通的查找法查找字符串的步骤是这样的: 先拿A[0:4]分别与B对应位置的字母比较,如果不相等则拿A[1...

2013-12-20 09:31:53 4495 2

原创 MSP430(F5529)学习笔记——UCS配置详解

MSP430(F5529)相比MSP430(F149)来讲,功能更加强大。 UCS简介 MSP430F5XX/MSP430F6XX系列器件的UCS包含有五种时钟源,依次是:XT1CLK、VLOCLK、REFOCLK、DCOCLK和XT2CLK。这五种时钟的详细介绍请参考该系列芯片的指导手册,其中X...

2013-06-09 16:43:36 33005 20

原创 MSP430(F149)学习笔记——红外接收

用MSP430(F149)做红外接收比发送更为简单,我采用的红外传感器是HS0038B,这个原件在接收到38K红外时输出低电平,否则输出高电平,因此,我们就可以从这点开始编写程序了,由于HS0038B的电路图很多,我这里就不贴出来了,下面是具体的代码: #include #include &q...

2013-06-07 14:13:55 6872 6

原创 解决CCS5.1或者Eclipse类产品中文偏小的问题

首先,下载微软雅黑和Consolas的混合字体,字体下载链接如下: http://download.csdn.net/detail/girlkoo/5536397 然后就是安装该字体,安装有两种方式,一种是解压后将该字体放到C:/Windows/Fonts目录,另一种是直接双击解压后的字体文件,...

2013-06-07 10:33:06 3859 0

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