nandflash裸机程序分析】的更多相关文章

它包含7个文件: head.S init.c main.c Makefile nand.c nand.lds 我们之前的程序都是在nandflash的前4k放代码,上电后自动拷贝到SRAM中,之后将SRAM中的代码拷贝到SDRAM中.可是当我们的程序太大超过4k的时候就不行了,因为无法将nandflash的代码完全拷贝到SRAM中去,这时就需要从nandflash中拷贝代码了. 本程序里面我们要实现的就是:将一部分代码放在nandflash的4096之后,上电后,前面一部分代码自动拷贝到SRAM…
图挂了可以去 https://github.com/tanghammer/mini2440_peripherals/blob/master/nand/debug_nand.md 按照前面sdram的代码,启动代码里面关看门狗.初始化存储控制器(主要是BANK0的Norflash和BANK6的SDRAM).设置栈到SDRAM的最高地址,text段的数据直接从Norflash里面取. 代码如下: head.S @********************************************…
开发板:EB-SAM9G45 这里提供一种裸程序下载的方法. 在官方提供的下载方法中有手动下载和自动下载,它们都离不开SAM-BA软件,而该软件使用比较麻烦,而且操作不当很容易导致电脑蓝屏,还有一个很大的缺点是,每次他都将裸机程序烧写到NANDFLASH当中,容易导致NANDFLASH出现坏块. 一种新的方法: l 安装SAM-BA软件 l 断开JP2跳线,复位开发板. l 点击“开始”->“所有程序”->ATMEL Corporation -> AT91-ISP v1.13 ->…
FreeRTOS命名及变量规则 初学FreeRTOS的用户对其变量和函数的命名比较迷惑,    FreeRTOS的核心源代码遵从MISRA编码标准指南,关于MISRA编码标准,可以查看文章https://wenku.baidu.com/view/5e7b2f4ee518964bcf847c99.html.下面专门做一下介绍: 变量  uint32_t定义的变量都加上前缀ul.u代表unsigned 无符号,l代表long长整型.  uint16_t定义的变量都加上前缀us.u代表unsign…
硬件平台:MDK972-EK开发板编译调试软件:KEIL uVision4仿真工具:JLINK V7/V8   本例子从串口输出信息,如图:       KEIL uVision4调试设置如图所示:   开发板启动方式设置:1.需要禁用硬件看门狗和使能JTAG引脚功能,如图所示:  2.可以将开发板设置于USB启动方式,或设置为其他启动方式,然后烧写U-Boot,使开发板停在U-Boot命令行对开发板进行仿真.    上面的仿真采用的是U-Boot命令行方式,若开发板烧写有Linux系统,则在开…
本文转载自:http://blog.csdn.net/eshing/article/details/37407423 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   一.实验原理 上一章已经解释的很清楚了,如何将所要运行的user_bin程序定位到DRAM中,这一章要进行重定位到DRAM后运行LCD程序,实际上一章中BL2中程序可以不用改动,直接重写我们的USER目录下的程序即可,将USER目录下的LED灯闪烁程序用LCD程序替换就行,最后编译出的程序名字也叫us…
本文转载自: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…
本文转载自:http://blog.csdn.net/eshing/article/details/37109115 首先.我想说明为什么我写这个文档?我自己想学点东西,过于求成,又过于自信,直接买了Tiny4412的板子,但网上关于4412的资料太少,我一直没办法啃动,只能尽可能找来各种相关资料进行参考分析.我想在U-Boot程序中加入LCD显示功能,但始终都没有正常点亮LCD,放弃的心都有了,后来在网上找到一份<Linux平台下Mini210S裸机程序开发指南>的文档,我觉得写的挺清楚的,…
APM程序分析 主程序在ArduCopter.cpp的loop()函数. /// advance_wp_target_along_track - move target location along track from origin to destination 设起始点O,目标点D,飞机所在当前点C,OC在OD上的投影为OH.该函数完成沿航迹更新中间目标点.航迹指的是OD.切记,中间目标点都是在OD线段上的.函数0.01s执行一次,即M点0.01s更新一次,两个中间目标点的距离是_limit…
我作为一个Java菜鸟,只会用简单的办法来处理这个问题.如果有大神看到,请略过,感激不尽! 所以首先先分析这道题目:数组中重复的数据进行删除,并且要让数组里的数据按原来的顺序排列,中间不能留空. 既然要删除重复的项目,那么以我现在的功力,只能用循环嵌套来处理.所以做一个循环,在循环体内部再嵌套一个循环,作用就是让数组的第一个数据和后面的每一个数据做对比. 然后在内循环体里面做判断,如果遇到相同数据,那么就让后面的数据都往前移动一个位置来覆盖第一个数据,以此类推.因此想要达到这个效果,内层循环里面…