历史上的今天
今天是:2025年05月16日(星期五)
2020年05月16日 | MINI2440和GQ2440烧录问题
2020-05-16 来源:eefocus
声明:以下是自己使用GQ2440和MINI2440的学习过程,仅供参考。
刚学习嵌入式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中。
史海拾趣
|
本帖最后由 paulhyde 于 2014-9-15 09:37 编辑 今年电子设计大赛湖北省关于电源类的预测题中引入了并网的技术,我们尝试了这个题目。最后实现了逆变后的安全并网,没有像别的组一样狂烧MOS管。 主要技巧在于: 1.时刻追踪市电电压的相位,保证自 ...… 查看全部问答> |
|
由于论坛中买mini2440开发板的人很多,但是大多数人是初学者,我有个想法就是我们大家一步步开始建立属于自己的开发平台,自己建立自己的u-boot,limux内核,文件系统,驱动。 不知道大家的意见如何呢? 可以讨论一下,自己对什么感性趣,都可以说 ...… 查看全部问答> |
|
现在导师要求把一个c#做的PDA程序改成C++的,可是我从没接触过MFC,前几天看了一下,看的太郁闷了,而且我以前做过一段时间的嵌入式QT,貌似QT也可以在winCE下使用?所以想用Qt来做界面,想请教下各位大侠,winCE下用Qt编程有什么限 ...… 查看全部问答> |
|
我有一块嵌入式主板,型号是sbc3662 ,插上sandisk 的cf卡 容量2g 可以安装2k系统没有问题,用Transcend的133X,4G时,bios可以识别硬件,安装windows时就提示没有硬盘,很奇怪啊,这块创见的cf卡我用它在其他台式机上装过xp系统,应该微软是能识别 ...… 查看全部问答> |
|
如果串口中没有DTR引脚,怎么用AT指令连接GPRS? 发完\"AT\\r\"; \"AT+CGDCONT=1,\\\"IP\\\",\\\"CMNET\\\"\\r\"; \"AT*E2IPA=1,1\\r\"; 之后是不是要DTR一个脉冲才能发送 \"AT*E2IPO=1,\\\"\"; \"ip\" \"\\\",\"; \"port\" \"\\r\"; 如 ...… 查看全部问答> |
|
我的三星2350设备,当我没有装上蓝牙设备的时候 Activesync一起正常,但是当我安装上蓝牙驱动的时候,ActiveSync就很难连接, 而且连接上的情况下,我断开usb连线,系统老是报Error:608的错误。各位帮帮忙,是不是和注册表哪块设置有关? 谢谢… 查看全部问答> |
|
代码如下,状态栏和工具条都可以正常显示,菜单却不显示,是怎么回事?急 if (!m_wndStatusBar.Create(this) || !m_wndToolBar.CreateEx(this, TBSTYLE_DROPDOWN | TBSTYLE_TOOLTIPS|TBSTYLE_FLAT, WS_VISIBLE|WS_CHI ...… 查看全部问答> |




