<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CD_keanu的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/CD_keanu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; CD_keanu]]></copyright><item><title><![CDATA[关于Qt几个问题的答案]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/47957327</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/47957327</guid><author>CD_keanu</author><pubDate>Mon, 24 Aug 2015 20:57:00 +0800</pubDate><description><![CDATA[一、如何emit一个其它类的signal


比如要在A类里emit一个B类的signal。好多人写了比较复杂的方法。其实看Qt的帮助文档就知道了。


就把A类声明为B类的friend class就行。就可以emit了。多简单。


二、在嵌入式linux 里面的Qt要调用系统调用，或者C语言的库，怎么办。


就是要C++和C混合编程了。除了声明extern “C” 以]]></description><category></category></item><item><title><![CDATA[既然没有人来说出真相，那就只有我来了]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/47957111</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/47957111</guid><author>CD_keanu</author><pubDate>Mon, 24 Aug 2015 20:40:26 +0800</pubDate><description><![CDATA[Qt这货实在不争气，花了我三天的时间，查了无数资料。5.0以上，Qt官方只说strongly recommended，要有opengl。


可是实际呢？奶奶个熊，没有opengl根本没法把qtquick编译出来。没有qtquick还有啥意思？Qt也不说清楚。


stackoverflow上很多人也尝试了，根本不行。事实就是qtquick 2.0以后的实现调用了opengl的接口。所]]></description><category></category></item><item><title><![CDATA[linux下C编程free()时出现飘忽诡异的段错误（核心已转储）问题]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/45562449</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/45562449</guid><author>CD_keanu</author><pubDate>Thu, 07 May 2015 16:24:18 +0800</pubDate><description><![CDATA[先说一下问题现场。
代码如下
	 free(volthisframe->Tops);
	free(volthisframe->Bots);
	printf("what\n");

free(volthisframe->SCTops);
free(volthisframe->SCBots);


运行时出现段错误，“what”随机出现，也就是说可能是打印前出现段错误，也可能是打印后出现]]></description><category></category></item><item><title><![CDATA[git中的孤魂野鬼]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/12525925</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/12525925</guid><author>CD_keanu</author><pubDate>Wed, 09 Oct 2013 21:44:56 +0800</pubDate><description><![CDATA[在看am335x的uboot的时候发现一个奇怪的东西。

就是所谓的template，这实际上是一个tag。可以checkout 这个tag。

在某种意义上tag可以充当一个临时branch的作用]]></description><category></category></item><item><title><![CDATA[linux 驱动中insmod与mknod各自的作用]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/12320725</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/12320725</guid><author>CD_keanu</author><pubDate>Sat, 05 Oct 2013 21:29:16 +0800</pubDate><description><![CDATA[今天写了一个linux的驱动，编译成功，用NFS在目录板上运行，insmod后，在/proc/devices里面能看到，用lsmod也能看到那个设备，但在/dev里找不到设备文件。应用测试程序open也出错了。后来在网上查了一些资料，说是需要先mknod才行，于是：mknod /dev/testdrv c 195 0 ,后再insmod,然后运行测试应用程序，OK!  下面是一些mknod的资料]]></description><category></category></item><item><title><![CDATA[AM335x中GPMC与FPGA通信]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/11980543</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/11980543</guid><author>CD_keanu</author><pubDate>Tue, 24 Sep 2013 16:16:41 +0800</pubDate><description><![CDATA[有用的东西不多，只是记个地址哈，GPMC方面21ic上有几个高手，可以去那里看看。







GPMC与FPGA通信

转载请注明出处：http://blog.youkuaiyun.com/qq405180763/article/details/7616941

最近这一两个月研究AM3730的GPMC与FPGA的通信，我负责的主要是涉及到GPMC这一块，由于之前就没有Linux基]]></description><category></category></item><item><title><![CDATA[基于AM335x的u-bootSPL 的CCS 调试]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/11979475</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/11979475</guid><author>CD_keanu</author><pubDate>Tue, 24 Sep 2013 16:14:11 +0800</pubDate><description><![CDATA[原文来自德仪中文在线，需要的直接去下原文吧。




基于AM335x的U-Boot/SPL 的CCS 调试


    在基于Linux的AM335x软件开发流程中，第一步就是U-Boot/SPL（Second Program Loader）的移植。在移植中遇到问题比较常见，而U-Boot/SPL的调试手段比较简陋，不便于迅速找到问题。利用仿真器可以单步调试的特点，就可以迅速定位]]></description><category></category></item><item><title><![CDATA[AM3359 中利用GPMC控制器驱动FIFO]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/11979361</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/11979361</guid><author>CD_keanu</author><pubDate>Tue, 24 Sep 2013 15:59:19 +0800</pubDate><description><![CDATA[大牛的文章，吐血推荐。




————————————————————————————————————————————————————————




AM3359 中利用GPMC控制器驱动FIFO

开发板：英蓓特科技有限公司的Mini8600B

处理器：TI公司的AM3359

操作系统：Linux3.2.0

FIFO芯片：IDT7205L20

]]></description><category></category></item><item><title><![CDATA[AM3359 GPIO 驱动设计]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/11979289</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/11979289</guid><author>CD_keanu</author><pubDate>Tue, 24 Sep 2013 15:57:07 +0800</pubDate><description><![CDATA[AM3359 GPIO 驱动设计
开发板：英蓓特科技有限公司的Mini8600B
处理器：TI 公司的AM3359
操作系统：Linux 3.2.0
一、GPIO 资源简介
AM3359 包含四组GPIO 引脚，GPIO0~GPIO3，每组32 根线，共128 根GPIO 引脚。
GPIO0 寄存器基地址：0x44E0_7000
GPIO1 寄存器基地址：0x4804_C000
G]]></description><category></category></item><item><title><![CDATA[AM335x SPL]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/11971475</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/11971475</guid><author>CD_keanu</author><pubDate>Tue, 24 Sep 2013 12:58:48 +0800</pubDate><description><![CDATA[一、

AM335x bootloader ：

1st stage：RBL （ROM）
2st stage：SPL （内部RAM：0x402f0400）
3st stage：U-Boot （一般外部DDR）


SPL是bootloader的第二部分，由RBL引导运行，主要目的就是引导U-Boot运行。

SPL也叫MLO，一般存放在SD或者Nand中。其中，在Nand中要]]></description><category></category></item><item><title><![CDATA[Linux下TI omap芯片 MUX 配置分析（以AM335X芯片为例）]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/11971171</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/11971171</guid><author>CD_keanu</author><pubDate>Tue, 24 Sep 2013 12:40:07 +0800</pubDate><description><![CDATA[http://blog.chinaunix.net/uid-20543672-id-3067021.html

在移植内核的时候，通常会遇到引脚复用（MUX）的配置问题。在现在的Linux内核中，对于TI的ARM芯片，早已经有了比较通用的MUX配置框架。这对于许多TI的芯片都是通用的，这次看AM335X的代码顺手写一下分析，以备后用。


一、硬件

    对于许多TI的芯片来说，]]></description><category></category></item><item><title><![CDATA[Linux下的Platform总线驱动]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/11944681</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/11944681</guid><author>CD_keanu</author><pubDate>Mon, 23 Sep 2013 17:36:14 +0800</pubDate><description><![CDATA[补充：

平台数据是定义在BSP里面的上层platform设备的一些配置。主要是因为platform涉及的都是一些总线，总线本身会有一些配置信息。但不是platform_bus_type，这是比上层platform设备还高的级别，一般都是CPU内部总线。

而私有数据是对平台数据的进一步指定，总线上的哪个设备。一般，这两个数据实际是同一个结构体类型，只是具体的platform设备会对这个结]]></description><category></category></item><item><title><![CDATA[linux下platform设备驱动框架的实现与作用解析]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/11863539</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/11863539</guid><author>CD_keanu</author><pubDate>Sat, 21 Sep 2013 11:48:03 +0800</pubDate><description><![CDATA[在网上找了好多资料看，包括宋宝华那本书。都是在讲platform的构成，设备驱动的内容什么的。却没有人专门来讲一下platform框架跟一般驱动之间的关系，以及platform到底用来干什么？


定义为platform的设备，就是定义了一个虚拟总线。同类设备都可以挂在这个总线上。第一，这样总线与设备之间实际是有一个继承的关系，总线的sysfs结点，设备电源管理等都可以继承过来。第二个是隔离]]></description><category></category></item><item><title><![CDATA[linux platform设备驱动简介及实例]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/11846897</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/11846897</guid><author>CD_keanu</author><pubDate>Fri, 20 Sep 2013 14:38:03 +0800</pubDate><description><![CDATA[简介:

目的:说白了就是为了将设备与驱动分离，通过platform总线进行连接




废话不多说:

相关结构介绍:

1.platform设备

结构体structplatform_device{

const char name;/*设备名*/

u32 id;/*设备id*/

struct device dev;/*设备*/

u32 num_]]></description><category></category></item><item><title><![CDATA[MACHINE_START分析]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/11820095</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/11820095</guid><author>CD_keanu</author><pubDate>Wed, 18 Sep 2013 20:19:17 +0800</pubDate><description><![CDATA[MACHINE_START分析


在友善mini2440提供的linux2.6.32.2内核中，有如下定义：
MACHINE_START(MINI2440, "FriendlyARM Mini2440 development board")
.phys_io = S3C2410_PA_UART,
.io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18]]></description><category></category></item><item><title><![CDATA[在Eclipse里面如何编译驱动模块]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/11768521</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/11768521</guid><author>CD_keanu</author><pubDate>Tue, 17 Sep 2013 13:26:07 +0800</pubDate><description><![CDATA[补充的补充：
这片文章写的非常详细，还配图，好处是适合新手入门。
另外一篇http://blog.youkuaiyun.com/gt945/article/details/6835392，就简单得多，其实步骤是完全一样的。我原来是自己写makefile，在命令行编译。能在Eclipse里面直接编译当然方便得多。
另外那个ctrl+b实在不要用，除非你的project explorer里面就只有这一个工程]]></description><category></category></item><item><title><![CDATA[系统初始化函数集(subsys_initcall)和初始化段应用]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/11765951</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/11765951</guid><author>CD_keanu</author><pubDate>Tue, 17 Sep 2013 11:38:18 +0800</pubDate><description><![CDATA[前言：前段时间做一个项目需要设计一个动态库，并希望在加载库的同时自动执行一些初始化动作，于是联想到了linux内核众子系统的初始化，于是研究之，并在过这程中发现了初始化段的存在，利用初始化段实现了该功能。工作一年，笔记积累多了，慢慢变得杂乱无章，于是开博，一方面整理笔记，梳理知识，另一方面和大家交流，共同进步。
 
 
keyword：subsys_initcall, init, init_]]></description><category></category></item><item><title><![CDATA[各种initcall的执行先后顺序（module_init、postcore_initcall、arch_initcall、subsys_initcall、 fs_initcall）]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/11765717</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/11765717</guid><author>CD_keanu</author><pubDate>Tue, 17 Sep 2013 11:34:08 +0800</pubDate><description><![CDATA[现在以module_init为例分析initcall在内核中的调用顺序
在头文件init.h中，有如下定义：
#define module_init(x)     __initcall(x);
很明显，module_init()只是一个面具而已，揭开这个面具，下面藏着的是__initcall()
__initcall()又是何方神圣呢？继续揭露真相：
#define __initcall]]></description><category></category></item><item><title><![CDATA[关于subsys_initcall]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/11765541</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/11765541</guid><author>CD_keanu</author><pubDate>Tue, 17 Sep 2013 11:33:11 +0800</pubDate><description><![CDATA[在linux内核代码里， 到处充满了subsys_initcall，这个调用是用来干吗的呢？有人回答是系统启动时候用来初始化某些系统的，具体怎么初始化的呢，说起来还是有点复杂。以2.6.21内核作为例子。

在linux/init.h里，有这样一段代码：

#define pure_initcall(fn)  __define_initcall("0",fn,1)

#define c]]></description><category></category></item><item><title><![CDATA[source insight 技巧集锦]]></title><link>https://blog.youkuaiyun.com/CD_keanu/article/details/11476227</link><guid>https://blog.youkuaiyun.com/CD_keanu/article/details/11476227</guid><author>CD_keanu</author><pubDate>Mon, 09 Sep 2013 14:17:04 +0800</pubDate><description><![CDATA[1、背景色选择

    要改变背景色Options->preference->windows background->color设置背景色

2、解决字符等宽对齐问题。

    SIS默认字体是VERDANA，很漂亮。这网页上应该也是用的VERDANA字体。但由于美观的缘故，VERDANA字体是不等宽的。比如下面两行

    llllllllll

    MMMMMMM]]></description><category></category></item></channel></rss>