❏【MINI2440开发板】
MINI2440
Yfw&武
IT爱好者
展开
-
MMU 创建映射
s3c2410的MMU讲解S3c2410总共有4种内存映射方式,分别是:1.Fault (无映射)2.Coarse Page (粗表)3.Section (段)4.Fine Page (细表)我们以Section(段)进行说明。ARM920T是一个32bit的CPU,它的虚拟地址空间为2^32=4G。而在Section模式,这4G的虚拟空间被分成一个一个称为段(Section)的单位...原创 2019-10-30 12:15:49 · 287 阅读 · 0 评论 -
arm MMU详解
一、MMU的产生 许多年以前,当人们还在使用DOS或是更古老的操作系统...转载 2019-10-30 11:59:52 · 1833 阅读 · 0 评论 -
2440裸机开发 nand flash 详解
五、nand flash 操作原文地址:http://blog.csdn.net/woshidahuaidan2011/article/details/51220911by jaosn Email: woshidahuaidan2011@hotmail.com于nor flash相比,nand flash的容量要大许多,nand 不同于nor ,其采用i/o接口只能采取顺序访问...转载 2019-10-23 12:44:02 · 890 阅读 · 0 评论 -
对链接地址0x30008000(S3C2440)的理解
当我们写链接器脚本的时候,我们会设置代码段的起始链接地址为0x30008000(S3C2440)。如果对链接地址理解错误的话,可能会出现像我这样的问题。 Q:gboot的链接器脚本里写的其实链接地址是内存中的0x30008000,再用交叉工具反汇编得到的start.S前几行代码地址都变成了0x30008000+,不太对啊。ARM启动流程里面讲处理器将NAND中的代码复制了4K到垫脚石中,垫...翻译 2019-10-16 10:47:36 · 744 阅读 · 0 评论 -
led裸机程序分析四(CPU初始化文件init.s)
;=========================================; NAME: 2440INIT.S; DESC: C start up codes; Configure memory, ISR ,stacks; Initialize C-variables; HISTORY:; 2002.02.25:kwtark: ver 0.0; 2002.03....原创 2019-10-14 16:59:27 · 384 阅读 · 0 评论 -
led裸机程序分析三(头文件Memcfg.ini)
在mini2440的myled裸机程序中头文件 中,Memcfg.ini这个头文件定义了存储器的相关配置(对存储器相关寄存器值的配置,这里对寄存器的相关配置最终会被init.s调用来初始化CPU);************************************************; NAME : MEMCFG.A; DESC : Memory bank config...原创 2019-10-14 11:12:09 · 205 阅读 · 0 评论 -
led裸机程序分析二(头文件option.ini)
在mini2440的myled裸机程序中头文件 中,option.ini这个头文件定义了芯片的相关配置;===========================================; NAME: OPTION.A; DESC: Configuration options for .S files; HISTORY:; 02.28.2002: ver 0.0; 03.11.20...原创 2019-10-14 10:31:25 · 585 阅读 · 0 评论 -
led裸机程序分析一(头文件2440addr.ini)
在mini2440的myled裸机程序中头文件 2440addr.ini 定义了寄存器符号。;====================================================================; File Name : 2440addr.a; Function : S3C2440 Define Address Register (Assembly);...原创 2019-10-14 09:56:45 · 435 阅读 · 0 评论 -
驱动开发之 LED(for mini2440)
开发环境:ubuntu16.04 64bitLinux内核版本:linux-2.6.32.21、编写mini2440_leds.c在/linux-2.6.32.2/drivers/char目录下,编写mini2440_leds.c,代码如下:#include <linux/miscdevice.h>#include <linux/delay.h>#includ...原创 2019-10-08 14:44:52 · 269 阅读 · 0 评论 -
驱动开发之 HelloWorld (for mini2440)
开发环境:ubuntu16.04 64bitLinux内核版本:linux-2.6.32.21、编写mini2440_hello_module.c在/linux-2.6.32.2/drivers/char目录下,编写mini2440_hello_module.c,代码如下:#include <linux/kernel.h>#include <linux/module....原创 2019-10-08 13:58:59 · 175 阅读 · 0 评论 -
linux内核配置对U盘的支持 (for mini2440)
配置优盘因为优盘用到了SCSI 命令,所以我们先增加SCSI 支持。在Device Drivers 菜单里面,选择SCSI devicesupport,按回车进入出现菜单,按空格键选择选项–SCSI device support,然后进入选择SCSI disk support,返回Device Drivers 菜单,再选择 USB support,按回车进入USB support 菜单,找到并选...原创 2019-10-07 21:55:45 · 2381 阅读 · 0 评论 -
mini2440从NFS启动文件系统
设置内核参数内核参数设置如下:console=ttySAC0 root=/dev/nfs nfsroot=172.20.11.88:/root/linux_kernel/rootfs ip=172.20.11.41:172.20.11.88:172.20.11.1:255.255.255.0:S3C2440A:eth0:off内核参数说明其各参数的含义如下:nfsroot 是自己开发...原创 2019-10-10 16:59:23 · 264 阅读 · 0 评论 -
驱动开发之 DM9000 (for mini2440)
内核版本:linux-2.6.32.2实验平台:mini24401. 添加平台设备支持首先需要在mach-mini2440.c中包含头文件<linux/dm9000.h>,dm9000平台设备定义如下:/* DM9000AEP 10/100 ethernet controller */#define MACH_MINI2440_DM9000_BASE (S3C2410_CS...原创 2019-10-09 10:42:21 · 205 阅读 · 0 评论 -
以模块的方式加载DM9000驱动 (for mini2440)
驱动代码部分参考:驱动开发之 DM9000注意事项:确保开发板内核中不存在DM9000(内核在编译时选择以模块方式编译DM9000)如果在已经把DM9000编译进内核的开发板安装,会提示DM9000已安装。报错如下:dm9000: module is already loaded insmod: cannot insert 'dm9000.ko': invalid_parameter....原创 2019-10-09 11:09:58 · 133 阅读 · 0 评论 -
arm移植ssh,实现远程root登录和sftp登录
下载需要的源码:mkdir -p ~/arm/fs ;mkdir -p ~/arm/source下载zlib: wget -c http://www.zlib.net/fossils/zlib-1.2.3.tar.gz下载ssl: wget -c http://www.openssl.org/source/openssl-0.9.8d.tar.gz下载ssh: wget -c htt...原创 2019-10-09 12:12:45 · 2550 阅读 · 0 评论 -
Ubuntu配置NFS
NFS 是Network File System的缩写,即网络文件系统,一种使用于分散式文件系统的协定NFS通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,例如将/home设置为共享目录,然后共享给网络中的其它服务器,这样每台机器就不必单独建立自己的/home路径了,NFS独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享,是在类Unix系统间实现磁盘文件共享的一种方法...转载 2019-10-10 16:18:35 · 295 阅读 · 0 评论 -
mini2440按键驱动程序分析
先说明一下按键与S3C2440芯片的连接方式:KEY1 <----> EINT8 <----> GPG0KEY2 <----> EINT11 <----> GPG3KEY3 <----> EINT13 <----> GPG5KEY4 <----> EINT14 <----> GPG6KEY5 ...翻译 2019-10-11 12:58:03 · 186 阅读 · 0 评论 -
linux驱动之中断管理(for mini2440)
2440处理器的中断组织成两层:主中断 和 次中断,一共可以处理60个中断源。主中断 和 次中断 经过中断构架的抽象之后,编写驱动程序时,我们不用考虑这两层中断,直接使用request_irq 注册 60个中断源的某个,就可以直接使用中断了。 err = request_irq(button_irqs[i].irq, buttons_interrupt, NULL, ...原创 2019-10-11 15:28:13 · 211 阅读 · 1 评论 -
Win7 64 ADS1.2 编译弹出Error: L6218E: Undefined symbol sprintf (referred from 2440...)
软硬件平台:WIN7 x64、ADSv1.2、Mini2440、JLink8.0 、J-link ARM V4.08l调试裸机程序会出现一些奇怪的问题!!Make 和Run Project的时候提示错误,错误信息如下:Warning : L6301W: Could not find file C:\Program Files .Warning : L6301W: Could not fi...转载 2019-09-20 15:58:22 · 1524 阅读 · 0 评论 -
移植第一个文件系统yaffs2 (for 2440)
1、获取yaffs2源代码:https://yaffs.net/get-yaffs2、为内核打上 yaffs2 补丁解压,进入 yaffs2 源代码目录,执行patch-ker.sh给Linux内核打上yaffs2文件系统的补丁:#cd yaffs2#./patch-ker.sh c m /root/linux_kernel/linux-2.6.32.2这里第二个参数我们选择m参数...原创 2019-10-05 14:47:41 · 190 阅读 · 0 评论 -
Mini2440 Linux移植开发实战指南(内核移植补充,遗漏部分)
根据《Mini2440_Linux移植开发实战指南》一文进行nandflash驱动的移植出现了不少问题。不知道是我操作失误还是该文编写出现错漏导致的。首先按照步骤修改相关信息之后执行make zImage出现了不少错误:其中有代表性的错误如下:arch/arm/mach-s3c2440/mach-mini2440.c:189: error: array type has incomplet...原创 2019-10-05 13:21:29 · 438 阅读 · 0 评论 -
移植第一个Linux内核(for 2440)
linux-2.6.32.2内核源码下载地址:https://mirrors.edge.kernel.org/pub/linux/kernel/v2.6/解压内核:未完待续原创 2019-09-30 15:35:50 · 184 阅读 · 0 评论 -
Linux内核启动后的脚本调用过程
由于默认的内核命令行上有 init=/linuxrc, 因此,在文件系统被挂载后,运行的第一个程序是根目录下的 linuxrc。 这是一个指向/bin/busybox 的链接,也就是说,系统起来后运行的第一个程序也就是 busybox 本身。这种情况下,busybox 首先将试图解析/etc/inittab 来获取进一步的初始化配置信息(参考 busybox 源代码 init/init.c...原创 2019-09-24 15:33:49 · 957 阅读 · 0 评论 -
s3c2440.jflash项目的配置(使用jlink下载boot到norflash)
J-Flash ARM的配置。一般说来file–>open project里面会找到一些*.jflash的配置文件,加载他们就行了,但是没找到适合S3C2440的。所以自己建了一个MINI2440.jflash,手动进行配置:j-link设置打开J-Flash ARM,并进入菜单:Options–>Project settings2.主要设置CPU选项和Flash选项CP...原创 2019-09-24 13:46:27 · 1931 阅读 · 1 评论 -
supervivi 对 Linux 系统的分区控制
前言:友善之臂的supervivi把 u-boot、boot参数、Linux内核、文件系统分别下载到什么地址段?两种启动模式下,各个片选的存储空间分配(如下图仅做参考):友善之臂的supervivi把 u-boot、boot参数、Linux内核、文件系统分别下载到什么地址段?根据官方文档提供的信息(如下图):boot 下载地址段:0~ 0x40000 可知boot被下载到N...原创 2019-09-24 09:11:39 · 232 阅读 · 0 评论 -
ARM IMPORT Image$$RO$$Limit 的含义
ARM IMPORT ImageROROROLimit 的含义IMPORT |ImageROROROBase| ; Base of ROM codeIMPORT |ImageROROROLimit| ; End of ROM code (=start of ROM data)IMPORT |ImageRWRWRWBase| ; Base of RAM to initialiseIMPO...转载 2019-09-20 16:27:17 · 882 阅读 · 0 评论 -
S3C2440运行裸机小程序需烧录到NAND Flash(学习笔记)
对于韦东山的S3C2440开发板,当运行LED等简单的小程序时,必须烧录到NAND Flash,原因如下:(1)NOR Flash虽然可以向内存一样进行读操作,但不可以像内存一样进行写操作,所以假如要从NOR Flash启动,一般先在代码的开始部分使用汇编指令初始化外接的内存器件(外部RAM),然后将代码复制到外存中,最后跳转到外存中继续执行。(这段初始化代码比较复杂,需要后面再学习)。(2)...原创 2019-09-18 23:11:18 · 225 阅读 · 0 评论 -
JLINK+AXD 调试出现 RDI Warning 00005:Data Abort 问题的解决办法
被这个问题困扰了好几个小时。。。终于熬出头了。。。以下为解决办法:出现RDI Warning 00005:Data Abort的原因在于芯片复位需要一定时间,所以可以在J-Link RDI (Version) Status的界面中点击Configuration进行设置:找到CPU的选项卡,在Reset Strategy(复位策略)中选择"Hardware,halt after reset (...原创 2019-09-18 23:00:31 · 596 阅读 · 0 评论 -
Linux下bootargs引导参数说明
=========================================设置系统启动参数========================================= 必须正确设置bootargs参数或者烧写bootargs镜像才能保证系统正常启动 这个参数设置要传递给内核的信息,主要用来告诉内核分区信息和根文件系统所在的分区核心理解:内核和文件系统启动...转载 2019-09-18 13:31:59 · 2092 阅读 · 0 评论 -
u-boot的环境变量
看到这个标题,可能觉得这个并没有什么的,其实不然,编好了u-boot了,但是如何来使用确不是那么简单的,想当初我将uboot制作出来后以为全部都搞定了,屁颠屁颠的烧到板子上后可系统就是起不来,为什么了,折腾了很久以后才发现是u-boot的环境变量设置错误,在后来的工作中,我发现一些有一定经验的人在这方面也是模模糊糊的扯不清,所以这里要讨论一下。 &nbs...转载 2019-09-18 13:29:12 · 170 阅读 · 0 评论 -
编译第一个文件系统镜像(for 2440)
mkdir /opt/studyarmcd /opt/studyarm新建建立根文件系统目录的脚本文件 create_rootfs_bash,使用命令 chmod +x create_rootfs_bash 改变文件的可执行权限,./create_rootfs_bash 运行脚本,就完成了根文件系统目录的创建。vim create_rootfs_bash#!/bin/sh ec...原创 2019-09-24 17:00:23 · 438 阅读 · 0 评论 -
insmod: error inserting 'xxx.ko': -1 Invalid module format
乘着实验机器在编译内核,把以前遇到的一个问题也总结一下,本来之前运行得好好地模块,后来怎么突然不行了呢,具体问题如下:该问题表示:内核模块编译的环境与现在insmod想要运行的环境不一致这个可能是我们编译了模块之后,重启了电脑,然后内核版本被更改了,例如我这个kthread.ko是在linux-3.10下编译的,但是我现在重启电脑之后是在linux-3.13内核版本下。所以在linux...转载 2019-09-24 22:07:06 · 663 阅读 · 0 评论 -
ARM集成开发环境eclipse的安装(for Linux)
下载eclipse-cpp-helios-SR2-linux-gtk.tat.gz点击右边的Linux 64bit点击下载 。未完待续原创 2019-09-29 10:44:10 · 2386 阅读 · 0 评论 -
JLink_Linux的安装
1、下载打开Jlink驱动官方下载地址https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack选择安装包类型和版本,然后点击下载。2、安装未完待续...原创 2019-09-29 09:24:27 · 1778 阅读 · 0 评论 -
arm-linux-gdb的安装
1、下载gdb-7.5.tar.gz(http://www.gnu.org/software/gdb/download/)2、配置与安装,写一个下面的脚本放在gdb-7.5.tar.gz同一目录下,并执行脚本。 tar -xzvf gdb-7.5.tar.gzcd ./gdb-7.5./configure --target=arm-linux --prefix=/usr/local/ar...原创 2019-09-29 08:58:58 · 1013 阅读 · 0 评论 -
linux环境下gdb的安装(for ARM)
1、下载gdb-7.5.tar.gz2、解压gdb-7.5.tar.gz tar -zxvf gdb-7.5.tar.gz3、编译arm-linux-gdb 到目录gdb-7.5: cd gdb-7.5 执行:$./configure --target=arm-linux --prefix=/usr/local/arm-gdb -v target指明编译生成的GDB用于调试A...原创 2019-09-28 22:33:48 · 1040 阅读 · 0 评论 -
u-boot移植
这里为大家提供u-boot各版本下载地址:https://ftp.denx.de/pub/u-boot/或者到GitHub下载。下面来移植u-boot-2009.11.tar.bz2 这个版本。未完待续原创 2019-09-28 17:00:38 · 92 阅读 · 0 评论 -
tslib移植实践
移植准备开发环境PC系统:ubuntu-16.04-desktop-amd64.iso交叉编译器:arm-Linux-gcc 4.4.3硬件平台:mini2440开发板文件系统镜像制作工具mkyaffs2image-128M镜像下载工具MiniToolstslib源码下载https://github.com/libts/tslib/releases 下载 tslib-1.0....原创 2019-09-26 11:21:23 · 391 阅读 · 0 评论 -
stlib 触摸屏校正程序ts_calibrate 发生段错误 Segmentation fault解决
vi /usr/local/tslib/etc/ts.conf 最后内容如下:module_raw inputmodule pthres pmin=1module variance delta=30module dejitter delta=100module linear1、ts.conf文件中的各个设置选项之前不能有空格,否则会出现: Segmentation fault ...原创 2019-09-25 21:27:03 · 1171 阅读 · 2 评论 -
mini2440上移植QT
QT下载:http://download.qt-project.org/archive/qt/tslib下载:https://github.com/libts/tslib/releases编译安装QT-X11-4.5.3QT-X11-4.5.3是运行于linux平台下用于仿真QT应用程序的软件,这样你便可以在linux平台下把你应用程序都调试好,然后再利用QT4.5.3把应用程序编译成ARM...原创 2019-09-25 14:58:54 · 375 阅读 · 0 评论