×
单片机 > 单片机程序设计 > 详情

MINI2440和GQ2440烧录问题

发布时间:2022-09-29 发布时间:
|

刚学习嵌入式Linux时候,可能会接触到很多的知识点,内核,根文件,引导什么的,对于新手来说是相当的苦恼,而且很多问题其实只是某些配置,安装环节的失误导致后续工作根本进行不下去,我一开始使用了国嵌的教程来进行学习的,一开始就因为各种驱动安装失败的问题困扰了很久。


在解决了些硬件上的问题后,一头扎进了supervivi,和uboot的世界(实际刚学的时候建议不要去碰太多这些东西,真的头痛,其实就是类似与windows中开启的BIOS差不多的,友情说明下国嵌里自带的supervivi是不能用的。),很多的教程都是介绍JTAG进行BIOS的烧录,但是一般大部分人都是使用“正版”J-Link来进行烧写的,MINI2440的用户手册没有介绍,建议可以看下国嵌的BIOS烧入。好不容易把supervivi 烧进了Nor-flash里。但是在烧入内核的阶段就一直失败了。检查了很久也没找到问题,浪费了很多时间。后面就换了MINI2440来使用,因为MINI2440已经烧入了好了bootloader和OS,因此其实是可以直接做一个体验再去了解其他的,但是我也不知道我做了什么操作,导致了后面的NOR-FLASH和NAND-FLASH切换没有任何的作用,直接启动启动(求教),以至于SD卡烧入不能实现,我猜想应该是和引导有关把,于是我尝试烧入一下bootloader到Nor-flash里,但是发现J-LINK都连不上,因为之前的GQ我是可以正常烧入bootloader的,于是我又还回来了,这次烧入的是MINI2440里提供的supervivi,支持SD卡的快速烧入系统,只能说黄天不负有心人,终于烧入系统成功了,可以进行下一步的学习了。下图是串口打印的信息,之后切换到NAND-FLASH就可以启动系统了。

典型嵌入式linux系统启动过程

1.典型嵌入式系统的部署:uboot程序部署在Flash(能作为启动设备的>Flash)上、OS部署在FLash(嵌入式系统中用Flash代替了硬盘)上、

内存在掉电时无作用,CPU在掉电时不工作。

2.启动过程:嵌入式系统上电后先执行uboot、然后uboot负责初始化>DDR,初始化Flash,然后将OS从Flash中读取到DDR中,然后启动OS

(OS启动后uboot就无用了)


norflash:非易失闪存,是一种外部存储介质,芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中,由于它有地址总线,cpu可以直接从norflash中取指,直接从FLASH中运行程序,但是工艺复杂,价格比较贵,容量较小(1~4M),NOR的传输效率很高


nandflash:它也是非易失闪存(掉电不丢失)的一种,但是它虽然有数据总线,但是没有地址总线,所以cpu不能直接从nandflash中取指运行,由于它价格便宜,所以常常用来存储大量数据,和我们常说的似。


嵌入式Linux一般开发流程

1.建立开发环境

2.配置开发主机

3.建立引导装载程序BOOTLOADER

4.下载别人已经移植好的linux操作系统

5.建立根文件系统

6.建立应用程序的FLASH磁盘分区

7.应用开发


一般是开发过程中是先把uboot载到nor中,然后通过nor中的uboot再把uboot跟linux 内核,根文件系统下到nandflash,它的最终位置应该是在nandflash。。。至于nor跟nand有什么区别,nor里面的代码可以直接运行,不需要加载到RAM(内存),而nandflash里面的代码需要加载到RAM才能运行,nor的速度没有ram快,所以一般最终版本的代码应该下载到nand,系统启动的时候会自动拷贝nand里面的前面4k代码到ram中,你这4k的代码必须完成硬件初始化并且把其余的代码全部拷贝到ram中。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
用Atmega 16单片机驱动字符型液晶显示芯片