首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
tq2440专题
tq2440_External Interrupt Controller
在开始之前整理一下ARM9结构中断建立过程: /* EXCEPTION HANDLER VECTOR TABLE */ ^ DRAM_BASE HandleUndef # 4 HandleSwi # 4 HandlePrefetch # 4 HandleAbort # 4 HandleReserv # 4 HandleIrq # 4 HandleFiq # 4 小注: 这里
阅读更多...
TQ2440成功移植linux-2.6.29内核
一.修改平台输入时钟和机器码 修改内核源码arch/arm/mach-s3c2440/mach-smdk2440.c” 文件的大概162行或163行,把16.9344MHz改为12MHz,因为TQ2440使用的就是12MHz的外部时钟源输入,即把16934400改为12000000。 在TQ2440使用的uboot中设定了机器码为168,所以内核这里需要修改机器码,否则会
阅读更多...
TQ2440之初级制作内核
1、首先拷贝TQ提供的已经移植好的内核到/usr/src/目录下。 cp /mnt/hgfs/share/linux-2.6.30.4_20100531.tar.bz2 /usr/src/ 2、解压linux-2.6.30.4_20100531.tar.bz2压缩包 tar -xvjf linux-2.6.30.4_20100531.tar.bz2 3、进
阅读更多...
u-boot-2012.07移植到TQ2440(二)
五、支持Nand Flash读写: 1.修改配置文件include\configs\smdk2440.h打开之前注释掉的NAND相关的宏 #defineCONFIG_CMD_NAND //zai 101 hang #define CONFIG_ENV_IS_IN_NAND #define CONFIG_ENV_OFFSET0x40000 #define
阅读更多...
基于TQ2440开发板的U-boot-1.1.6的start.S代码分析
start.S汇编源文件是U-boot执行的起始代码文件,也是不容易理解的实现部分。执行流程如下: .globl _start //定义_start是全局标签,其他文件也可以使用。.globl是GNU汇编语法。 _start: b reset //跳转到reset标签出执行,由于reset操作是在MMU工作之前/之后都有可能使用,所以这里用b来跳转。 /*
阅读更多...
Mpalyer-1.0rc4在tq2440上的移植
主机环境:ubuntu11.04 开发板平台:tq2440 交叉编译环境:arm-linux-gcc 4.4.3 1、获得源码 到http://www1.mplayerhq.hu/design7/news.html上边,找到MPlayer-1.0rc4.tar.gz2下载 2、配置 解压源码包: tar jxvf MPlayer-1.0rc4.tar.gz2 进入目录 配
阅读更多...
qt4.8.2在tq2440开发板上的移植(二)--构建根文件系统
上一片文章中,给大家介绍了QT-embed4.8.2的交叉编译安装的过程。还要构建根文件系统,然后把安装好的库和字体放到根文件系统,系统才能正常启动和工作。 今天,给大家介绍一下根文件系统的构建和库的移植。 1、开发环境 busybox版本:1.13.0 交叉编译器版本:arm-linux-gcc 4.3.3 主机环境:ubuntu11.04 2、编译配置busybox(目
阅读更多...
qt4.8.2在tq2440开发板上的移植(一)--编译和安装
主机版本:ubuntu11.04 交叉编译器版本:4.3.3 移植的主要工作就是编译在ARM板上运行的qt库,并且把这些库做到根目录中。 需要的文件tslib-1.4.tar.gz qt-everywhere-opensource-src-4.8.2.tar.gz 具体步骤如下: 1、首先编译安装触摸屏驱动库tslib-1.4 解压 root@rjm-home:~/work/Q
阅读更多...
u-boot支持LCD显示(基于TQ2440)
阅读目录(Content) 平台简介摘要思路u-boot的启动流程u-boot的内存布局LCD的初始化流程 内存分配LCD的初始化完成LCD驱动 在配置文件中打开相关的配置定义用户自定义信息实现LCD初始化和使能函数测试进一步 回到顶部(go to top) 平台简介 Linux版本:Linux-3.14 u-boot版本:u-boot-2015.04 硬件:TQ2440(
阅读更多...
TQ2440开发板学习纪实(9)--- 利用Undefined异常模拟BLX指令
在博文 《紧急求助!ARM-GCC对于函数指针调用的编译有错误?》中,我提到了GCC在编译函数指针调用的时候,会生成绝对地址跳转指令BLX。而S3C2440A这款CPU不支持BLX指令,从而导致陷入Undefined异常。 本文就利用这个Undefined异常,来模拟BLX指令,从而让使用BLX指令的程序可以正常运行在S3C2440上。 1 Undefined异常的处理流程 ARM9在执行未
阅读更多...
TQ2440开发板学习纪实(8)--- 从NAND Flash读取数据,把代码搬运到SDRAM运行
因为依赖于S3C2440的开机自动从Nandflash复制数据到片内SRAM执行,目前我们的可执行程序体积仍然不能大于4KB的限制。而我们的程序目前已经非常接近这个限制大小了,为了能够继续开发,必须突破这个限制。为此需要实现代码搬运功能,把程序从Nandflash搬运到SDRAM中去,并跳转到SDRAM执行。 本文为啥不实现NandFlash写? 因为对于我们的实现目前尚未需求。更重要的是,写操
阅读更多...
TQ2440开发板学习纪实(7)--- 基于中断的UART串口接收
UART0的发送、接收、错误分别产生不同的中断,可以分别控制。本文仅对UART0的接收采用中断方式,发送仍然采用轮训方式。这样有个很大的用处,那就是程序陷入死循环是,可以通过UART0发送给ARM一个信号,来终止程序的运行。 关键代码片段: 1 取消相关中断屏蔽位 /* unmask interrupt for UART0 */rINTMSK &= ~(1<<28);rINTSUBMSK &
阅读更多...
TQ2440开发板学习纪实(6)--- 启用IRQ中断,告别低效的轮询!
前面的实验中,无论是按键的状态,还是串口的发送接收状态,都是通过轮询的方式进行读取,不仅低效而且严重浪费CPU计算周期,在实际的生产环境下决不能使用!从本文开始,我们进进入一个新的时代,中断处理。 0 中断、异常、软中断,傻傻分不清 在CPU中断处理领域,术语比较混乱。而且有时候同一个术语在不同的语境含义也不相同。这里我们以S3C2440的数据手册为准解释相关概念。 异常,英文名Except
阅读更多...
TQ2440开发板学习纪实(4)--- 初始化片外RAM,让程序有更大内存空间
到目前为止,我们的程序只能使用S3C2440的片内4KB的RAM。这么小的内存空间,显然不能应付实际的应用。是时候使用片外的RAM了,本文将详细介绍片外RAM的初始化过程。 0 ROM,RAM,SRAM,DRAM,SDRAM傻傻分不清 作为软件出身的软男,很难从根本上弄清楚ROM,RAM,SDRAM,SRAM等等的原理,这里我们只要了解基本的特性就可以了。 ROM,NorFlash: 只读内
阅读更多...
USB摄像头在TQ2440或TINY6410上帧速慢的真正原因
USB摄像头在TQ2440或TINY6410上帧速慢的真正原因 移植过mjpg-streamer或者ffmpeg到板子上的人都会发现,采样只有大概2fps,总想方法提升速度,修改默认配置,命令行,使用硬件编码,实际都不能明显的提高速度,原因是,这两个板子采用的是USB1.1,导致USB摄像头采集的图像无法快速的存入内存中。 USB摄像头一般输出是YUYV422,打包格式为YUYVY
阅读更多...
Linux_tq2440_背光灯驱动分析
背光灯的引脚是S3C2410_GPG4 可以这样定义 #define S3C2410_GPIO_BANKG (32*6) #define S3C2410_GPG4 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 4) #define S3C2410_GPG4_INP (0x00 << 8) #define S3C2410_GPG4_
阅读更多...
TQ2440使用uboot下的命令行进行ftp下载程序到nand flash
看了韦东山第一期视频的第12集,由于手头没有open-jtag,所以着重看了下ftp下载程序的方法。 准备工作: 1.下载安装ftp-server工具 http://pan.baidu.com/s/1bpgdc8f 界面如图 分别设置你要下载的bin文件的目录和你本地连接的ip(需要提前设置好本地ip,注意要是同一网段),然后最
阅读更多...