文章分类 - 嵌入式
摘要:一、前言Device Tree总共有三篇,分别是:1、为何要引入Device Tree,这个机制是用来解决什么问题的?(请参考引入Device Tree的原因)2、Device Tree的基础概念(请参考DT基础概念)3、ARM linux中和Device Tree相关的代码分析(这是本文的主题)本...
阅读全文
摘要:一、前言一些背景知识(例如:为何要引入Device Tree,这个机制是用来解决什么问题的)请参考引入Device Tree的原因,本文主要是介绍Device Tree的基础概念。简单的说,如果要使用Device Tree,首先用户要了解自己的硬件配置和系统运行参数,并把这些信息组织成Device ...
阅读全文
摘要:一、前言作为一个多年耕耘在linux 2.6.23内核的开发者,各个不同项目中各种不同周边外设驱动的开发以及各种琐碎的、扯皮的俗务占据了大部分的时间。当有机会下载3.14的内核并准备学习的时候,突然发现linux kernel对于我似乎变得非常的陌生了,各种新的机制,各种framework、各种新的...
阅读全文
摘要:1. ARM Device Tree起源Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking pain in the ass”,引发ARM Linux社区的地震,随后ARM社区进行了一系列的重大修正。在...
阅读全文
摘要:移植环境:HOST: Fedora 12交叉编译器:Sourcery G++ Lite 2009q3-67 for ARM GNU/Linux交叉编译程序:Sqlite 3.6.23.1,Python 2.6.5下载源码:Sqlite 3.6.23.1 http://www.sqlite.org/s...
阅读全文
摘要:最近学习python代码的编写,阅读了相关的书籍《A Byte of Python》、《Python核心编程》,自己动手做了一些shell和python的练习,并有一些浅显的看法:就两次脚本处理的编码练习而言,我感觉如果使用python去写脚本来处理日常事务的话,相对于shell是一件比较麻烦的事情...
阅读全文
摘要:图像算法集成基于TI Davinci DM8168,开发平台SDK为DVRRDK3.0,实现框架为MCFW,算法引擎为TI 的XDAIS标准。下图分别为DM86168的软件开发框图(a),以及基于eXpressDSP算法开发框图(b)。(a)从图(a)中我们知道DM8168是一个多核架构的CPU。它...
阅读全文
摘要:总的来说,在我们执行make命令的时候,系统会找到当前目录下的Makefile文件,编译这个文件中所有的源文件生成目标文件。类似于在我们用VC的时候“编译”这个过程。makefile分为显示规则,隐晦规则,变量定义,文件指示和注释。显示规则:包括要生成的文件,依赖文件,生成的命令等。隐晦规则:mak...
阅读全文
摘要:特别注意的是,make 是在读取 Makefile 时就计算条件表达式的值,并根据条件表达式的值来选择语句,所以,你最好不要把自动化变量(如"$@"等)放入条件表达式中,因为自动化变量是在运行时才有的。一、函数的调用语法函数调用,很像变量的使用,也是以"$"来标识的,其语法如下:$( )或是${ }...
阅读全文
摘要:基于DM8168智能视频跟踪系统以TMS320DM8168处理器为核心,各种外设接口组成的智能视频分析跟踪系统。本评估板(DM8168 EVM)硬件模块高度集成了DM8168,以及其它外设如NAND、DDR3、SPI FLASH等。接口主要包括四路视频输入口、一路视频输出口、三路串口。可以完全脱离计...
阅读全文
摘要:QT是目前在Linux操作系统平台下应用最多的图形用户界面的底层库,由其派生出的QT/Embedded大量用于嵌入式系统开发和研制中。 实际上,QT/Embedded提供给用户的非ASCII码的字库一般比较少,在我们开发过程中用的嵌入式Linux系统中中文和日文的字库都只有一个(不算不同的旋转角)...
阅读全文
摘要:qt字库的移植(使其很好的显示中文)1 如何定制字库(移植字库) 需要将至少两个文件赋值到....lib/font目录下1. fontdir 文件。这个是应用程序寻找当前系统中最合适自己需要的字库的索引;2,需要的字体库文件,一般是多个。具体移植那一个,看你使用的字库是什么了,。比如我现在的系统我...
阅读全文
摘要:QT4.7.0在移植到开发板上的时候,中文支持是必不可少的,如何让QT支持中文,如何制作QT支持的字体文件,如何使QT UI编辑器中的字号与开发板中的字号一致。作者通过实验进行了一一验证。介绍:1、初体验: QT程序中指明的字体和字号在/fonts目录下没有对应的字库文件时,QT会选择某一个存在的...
阅读全文
摘要:下面将介绍如何制作QPF文件。 QT有一个工具:makeqpf,是专门用来转换qpf文件的,但这个程序只能在嵌入式环境下运行(双击也能打开,但生成的字库不能使用),所以需要编译X86版的QT4.7。 解压qt-everywhere-opensource-src-4.7.0.tar.gz,并将其复...
阅读全文
摘要:在linux 内核中有一个大名鼎鼎的宏container_of(),这个宏是用来干嘛的呢?我们先来看看它在内核中是怎样定义的。呵呵,乍一看不知道是什么东东。我们先来分析一下container_of(ptr,type,member),这里面有ptr,type,member分别代表指针、类型、成员。看一...
阅读全文
摘要:本文是基于2.6的内核,也建议各位可以先看一下《Linux内核设计与实现(第二版)》作为一个基础知识的铺垫。当然,从实践角度来看,只要按着以下的步骤去做也应该可以实现成功编译内核及加载模块。个人用的Linux版本为:Debian GNU/Linux,内核版本为:2.6.20-1-686. 第一步,下...
阅读全文
摘要:Linux 2.6 下内核模块的Makefile# Makefile 2.6obj-m += hello.oKDIR:=/lib/modules/$(shell uname -r)/build# PWD=$(shell pwd)all: make -C $(KDIR) M=$(PWD)...
阅读全文
摘要:主题: linux内核模块的程序结构--模块加载函数(必须),模块卸载函数(必须),模块许可证声明(必须),模块参数(可选),模块导出符号(可选),模块作者的等信息声明(可选)一个linux内核模块主要由以下几个部分组成。1、模块加载函数"用module_init()来指定"(必须) 当通过insm...
阅读全文
摘要:1 简单配置Ubuntu9.10以前的版本grub的配置文件是menu.lst,到了ubuntu9.10的时候就更名为grub.cfg了。在ubuntu中,grub.cfg就相当于windows系统下的boot.ini文件.sudo vim /boot/grub/grub.cfg 在### BEG...
阅读全文
摘要:内核编译链接过程是依靠vmlinux.lds文件,以arm为例vmlinux.lds文件位于kernel/arch/arm/vmlinux.lds,vmlinux-armv.lds的生成过程在kernel/arch/arm/Makefile中ifeq ($(CONFIG_CPU_32),y)PROC...
阅读全文