今天在 写了个简单的 led 的汇编程序,下载到 mini2440 的 nand flash 里面可以正常运行,但是下载到 sdram 里面不能运行. 后来发现有几个注意点, 要在 sdram 中运行,链接脚本的地址不能像 nand 里面一样是0,必须是 sdram 里面的地址,比如说 0x30000000. 下载到 ram 中的地址必须和 链接脚本的地址一致. 0x30000000 这个地址不行,0x30008000 这个地址肯定没有问题,0x30000020 超过这个地址,也都可以运行,0x…
按照韦东山的视频中 sdram的裸机代码,写了一份,通过 minitools 下载到 0x30000000,然后烧录到 nand中,接过不能正常运行. 尝试过多种方法后,只有一种解决方法,就是不要用 0x30000000这个地址. 可以把 makefile 中的地址改为0x30008000,minitools 中下载的地址也改为 0x30008000,这样就可以正常的运行了. 可能 0x30000000 前面的一些内存被使用了? 后来换了一个 TQ2440的开发板,不使用 minitools,而…
开发板:EB-SAM9G45 这里提供一种裸程序下载的方法. 在官方提供的下载方法中有手动下载和自动下载,它们都离不开SAM-BA软件,而该软件使用比较麻烦,而且操作不当很容易导致电脑蓝屏,还有一个很大的缺点是,每次他都将裸机程序烧写到NANDFLASH当中,容易导致NANDFLASH出现坏块. 一种新的方法: l 安装SAM-BA软件 l 断开JP2跳线,复位开发板. l 点击“开始”->“所有程序”->ATMEL Corporation -> AT91-ISP v1.13 ->…
mini2440拿到手有四天了,抱着很大的兴趣看韦东山老师的视频,但是因为电脑是win7 64bit的系统,dnw的驱动没有,经查询可以使用supervivi,就查找相关的资料.但是始终弄不好,后来使用mini tools.很给力. 贴出下载地址: MiniTools安装文件(含Windows/Linux版):http://www.sendspace.com/file/7m7xz0Superboot-2440: http://pan.baidu.com/share/link?shareid=56…
1. win8要装DNW驱动首先要禁止驱动数字签名(参考百度经验:http://jingyan.baidu.com/article/3f16e003d1f4612591c103ce.html) 2.然后参照开发板给安装包按步骤操作,跟其它启动差不多(在破解过程中要填.inf的路径是指破解包解压的文件夹路径,可以在资源管理器复制,注意不是像其它破解填要生成的破解文件存放路径) 3.重启后设备管理的软件设备有驱动需要更新(更新的时候只需要选择前面的破解文件就可以),此时开发板一定要上电连接好usb…
转自:http://blog.csdn.net/shengnan_wu/article/details/8309417 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.相关原理图 2.相关寄存器介绍与配置 1)与管脚相关 ①GPHCON 注: 配置成UART0功能: GPHCON |= 10 10 10 10b(还要在GPHUP里把管脚禁止上拉) 2)与中断相关 上传图片好麻烦,跟以前相关的这里就不贴了 3)与UART0相关 ①ULCON0 注: Infrared Mode :选择普通…
转自:http://blog.csdn.net/shengnan_wu/article/details/8298869 一.概述          S3C2440通用异步接收和发送(UART)提供了三路的不同异步串行I/O端口,每一个端口可以被配置为中断模式或者DMA模式 .也就是说UART可以产生中断或者DMA请求来在CPU和UART之间传输数据.UART可以支持高达115.2K波特率使用系统时钟.如果一个外部设备为UART提供UEXTCLK,那么UART可以运行在更高的速度上.每个UART通…
常用的烧写方法有: 1.使用并口工具烧写:接线(参考百问网JZ2440V2开发板使用手册),使用oflash烧写(速度比较慢),可烧写.bin文件,从新上电观察效果.可烧写u_boot. 2.使用openJTAG烧写,接线,使用oflash烧写(oflash烧写完后,会复位开发板). 3.使用Jlink烧写,请看如何烧写S3C2440裸板程序:JLink只支持烧写Nor Flash,不支持Nand Flash. 所以:选择J-link烧写u-boot 这是烧写代码的基础,因为开发板j-link不…
图挂了可以去 https://github.com/tanghammer/mini2440_peripherals/blob/master/nand/debug_nand.md 按照前面sdram的代码,启动代码里面关看门狗.初始化存储控制器(主要是BANK0的Norflash和BANK6的SDRAM).设置栈到SDRAM的最高地址,text段的数据直接从Norflash里面取. 代码如下: head.S @********************************************…
它包含7个文件: head.S init.c main.c Makefile nand.c nand.lds 我们之前的程序都是在nandflash的前4k放代码,上电后自动拷贝到SRAM中,之后将SRAM中的代码拷贝到SDRAM中.可是当我们的程序太大超过4k的时候就不行了,因为无法将nandflash的代码完全拷贝到SRAM中去,这时就需要从nandflash中拷贝代码了. 本程序里面我们要实现的就是:将一部分代码放在nandflash的4096之后,上电后,前面一部分代码自动拷贝到SRAM…
本文转载自:http://blog.csdn.net/eshing/article/details/37109115 首先.我想说明为什么我写这个文档?我自己想学点东西,过于求成,又过于自信,直接买了Tiny4412的板子,但网上关于4412的资料太少,我一直没办法啃动,只能尽可能找来各种相关资料进行参考分析.我想在U-Boot程序中加入LCD显示功能,但始终都没有正常点亮LCD,放弃的心都有了,后来在网上找到一份<Linux平台下Mini210S裸机程序开发指南>的文档,我觉得写的挺清楚的,…
文章目录 一.S3C2440的启动方式 二.代码 一.S3C2440的启动方式 S3C2440的MMU有一种"steppingstone".技术,是协助MCU从无法执行程序的NAND FLASH执行启动程序的一种方法,其启动步骤如下: 1.系统上电后,首先自动判断是否是autoboot模式,如果使用 s3c2440是带有nandflash的,并且被设置成autoboot,从nandflash开始启动. 2.在判断是autoboot模式后,mcu内置的nandflash控制器自动将nan…
让LED程序在片外SDRAM中运行 一.引子 在前一篇文章中,我们已经成功点亮过LED了,为什么还要再重复一次呢? 我们已经知道,Mini2440开发板有两种启动模式:从NorFlash启动和从NandFlash启动. 这里着重说明一下从NandFlash启动的过程. 在S3C2440片内有一块被称为SteppingStone的片内SRAM,它的大小为4K.将开发板设置为从NandFlash启动之后,SteppingStone会被映射成为0地址,并且在上电后,NandFlash前4K的数据会被自…
1. 简要说明 JLink的调试功能.烧写Flash的功能都很强大,但是对于S3C2410.S3C2440的Flash操作有些麻烦:烧写Nor Flash时需要设置SDRAM,否则速率很慢:烧写Nand Flash只是从理论上能够达到,但是还没有人直接实现这点.本文使用一个间接的方法来实现对S3C2410.S3C2440开发板的Nor.Nand Flash的烧写.原理为:JLink可以很方便地读写内存.启动程序,那么可以把一个特制的程序下载到开发板上的SDRAM去,并运行它,然后使用这个程序来烧…
硬件平台 :JZ2440 实现功能:初始化 Nand Flash 和 sdram,并将代码从 Nand Flash 拷贝到 sdram. start.s      --> 上电初始化 nand 与sdram nand.c     -->  Nand Flash 初始化函数 sdram.c   --> sdram 初始化函数 leds.c      -->  led 闪烁 start.s 源码: .text .global _start _start: ldr sp,= bl dis…
在前边我们使用汇编完成了一个流水灯实验: Tiny4412汇编流水灯代码,Tiny4412裸机LED操作 ---- - -- -- -- - -- -- 修改: # ${MKBL2} ${SOURCE_FILE} bl2.bin 14336                                 ./${MKBL2} ${SOURCE_FILE} bl2.bin 14336 或者: MKBL2=my_mkbl2改成MKBL2=./my_mkbl2 必须有:chmod +x my_mkbl…
如题,实现过程中发现3额问题,先写下来,待解答: 1.uboot启动后再dnw上打印许多信息,我想改变其中的打印信息或加上自己的打印信息以证明程序运行到何处.修改完后重新编译uboot.bin. 在DNW下执行dnw 50008000 USB下载uboot.bin到内存50008000处, go 50008000,从内存50008000处运行我刚下载的程序,发现我修改的内容并未显示. 重新执行dnw 50008000,nand erase 0 100000,nand write.uboot 50…
arm裸机程序启动流程 1373 Linux系统的引导: 一个SOC拿过来,它是有内部BROM和SRAM的,这个BROM中会固化芯片厂商的最初引导代码,我们叫它RBL(ROM boot loader),它是SOC上电后开始运行的地方,它会判断是哪种启动方式,如果是nand启动,就会从nand的起始地址处读取UBL(user boot loader)并且复制到ARM的内存里面,也就是上面说的片内SRAM,UBL运行在ARM的内存里,初始化系统,例如初始化DDR.然后UBL从NAND Flash里面…
ubuntu1604系统下搭配ckermit和dnw基于RAM的裸机程序调试环境 系统:  ubuntu16.04 裸板: 飞凌公司OK6410开发板 目标:搭建基于ubuntu1604系统和基于RAM的裸机程序开发环境 1.安装配置ckermit 在ubuntu1604下一般做裸板开发时都是使用ckermit作为远程通讯终端,下面我们就开始讲解下其安装与配置. 1.1.安装ckermit 在ubuntu系统下安装ckermit,使用 sudo  apt-get  install  ckermi…
本文转载自:http://blog.csdn.net/eshing/article/details/37410571 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   一.实验原理 大家可能会有疑问,不是在BL2目录中的mem_init_tiny4412.S实现了串口初始化了,且也有串口输出函数,要不然怎么串口调试助手上怎么会有打印信息呢,这里为什么还要重新初始化?其实我觉得也可以不用重新初始化,但至少也要实现Printf()这个标准函数里要调用的串口输出函数吧,因…
本文转载自:http://blog.csdn.net/eshing/article/details/37116637 一.关于DRAM 上一章我们讲解了如何对代码进行重定位,但是将代码重定位到只有256K IRAM中作用不大. 正确的做法是将代码重定位到容量更大的主存中,即DRAM.Exynos4412中有两个独立的DRAM控制器,分别叫DMC0和DMC1.DMC0和DMC1分别支持最大1.5G的DRAM,它们都支持DDR2/DDR3和LPDDR2等,512 Mb, 1 Gb, 2 Gb, 4…
本文主要介绍如何使用Keil4开发ARM9(S3C2440)裸机程序. 说明: 一.平台: 操作系统:Windows XP系统 KEIL版本:4.73 开发板:ARM9(S3C2440) 二.建立工程:   1.新建工程,选择S3C2440A处理器: 2.对工程进行设置 1)设置RAM.ROM地址: RAM1: Start:0x30000000 Size:0x200000 ROM1: Start:0x30200000 Size:0x200000 2)生成Hex文件 3)设置生成.0 .bin .…
1:安装tftp:#apt-get update#apt-get install tftp-hpa tftpd-hpa xinetd2:#cd /srv#mkdir tftp#chmod 777 tftp3:复制一个led.bin文件进tftphttp://pan.baidu.com/s/1kTS7MGv4:重新启动服务# /etc/init.d/xinetd restart# /etc/init.d/tftpd-hpa restart5:接着启动 GEC210 开发板后,进入 uboot 命令…
因为前面的裸机程序非常的简单,就不写博了. 程序的流程: 1,初始化C SP 2,关看门狗 3,初始化SDRAM 4,读出 NAND FLASH 中的 包含图片的程式放到SDRAM里面 5,跳转到SDRAM 执行 因为 2440 自动只读取4K 到 SRAM ,在里面放了图片,自然就不够用了. 就多了一步放到 SDRAM 里面去. 我并没有直接复制教程上面的程式,那个上面比较复杂.用到了c 的 库文件. 教程中只是画线,画圆线很简单. 刚一开始,我是使用 24BPP 开发的,这样遇到的问题还比较…
Mini6410上最简单的LED点灯裸机程序 : 实验环境: 根据友善教程,要用ADS,据说现在都不用这个了,但是为了打开友善给的mcp工程,就下了一个,Win7下弄上兼容模式和管理员权限,再下一个SecureCRT代替超级终端. 一定要,把AXD也设置上. secureCRT的配置:选择Serial串口,波特率115200,端口号:USB转串(去驱动程序查端口号,今天插了一个COM4,一个COM5) 实验步骤: 配置好了以后,打开CodeWarrior编译mini6410-led.bin文件…
昨天安装了ssh服务之后今天在windows上用xshell登陆发现登录不上,原因是使用了virtualbox的NAT模式,在NAT模式下,客户机可以很方便地上网,但是想要链接宿主机就需要打开网络地址映射 首先要知道ssh服务使用的是22端口,然后打开windows主机上的适配器,virtualbox安装了一张虚拟网卡,如下 虚拟地址为192.168.56.1,接下来在虚拟机的设置界面设置网络地址映射,首先还要知道虚拟机的IP地址,如下 地址为10.0.2.15,就可以去做端口转发了,位置如下…
CPU:S3C2440, ARM920T, Internal 4KB RAM, Support boot from NAND flash, 128MB for each bank. JZ2440:Memory接到Bank6,所以内存地址从0x3000,0000(128MBx6)开始. Nand 256M 8bit,SDRAM 64M 32bit,Nor 2M 16bit. Keil-MDK5已经不支持ARM9,需要安装额外的pack支持:http://www2.keil.com/mdk5/leg…
硬件平台:MDK972-EK开发板编译调试软件:KEIL uVision4仿真工具:JLINK V7/V8   本例子从串口输出信息,如图:       KEIL uVision4调试设置如图所示:   开发板启动方式设置:1.需要禁用硬件看门狗和使能JTAG引脚功能,如图所示:  2.可以将开发板设置于USB启动方式,或设置为其他启动方式,然后烧写U-Boot,使开发板停在U-Boot命令行对开发板进行仿真.    上面的仿真采用的是U-Boot命令行方式,若开发板烧写有Linux系统,则在开…
我们还是使用JZ2440学习笔记之第一个裸机程序(Keil-MDK)里面的程序,但是把延时拿掉,要不然单步的时候一直在delay里面: int main(void) { // Set GPF4/5/6 as output. GPFCON = GPF4_out|GPF5_out|GPF6_out; // Pull down will light led, so pull up here. GPFDAT = 0xFF; ){ // Delay(); GPFDAT = 0xEF; // 1110,11…
需要安装openocd软件.如果已安装默认的openocd,需要先卸载系统默认的openocd(默认版本是0.5.0,版本太低),然后再安装. 在安装前需要安装libusb库文件: -dev libusb-1.0-0 automake autconf libtool pkg-config 然后执行安装: git clone git://git.code.sf.net/p/openocd/code openocd cd openocd ./bootstrap ./configure --prefi…