[ARM Linux入门与实践] 请教阿南:看你书知道你以前ARM9做产品也不用操作系统。

[复制链接]
3949|9
 楼主| LPcfANS 发表于 2009-4-3 09:47 | 显示全部楼层 |阅读模式
问:我现在也打算不用操作系统做个产品,有TFTLCD,程序大约不超过10M。<br />&nbsp;如何从NAND&nbsp;FLASH启动应用程序,然后在SDRAM中运行?<br />请指教。谢谢。。
computer00 发表于 2009-4-3 09:56 | 显示全部楼层

这个跟有没有操作系统无关吧……

如果你想保留一个boot&nbsp;load,你把操作系统内核换成你的可执行文件就行了。<br /><br />如果连boot&nbsp;load也不要,那就自己写一个加载程序放在block0,然后再去FLASH复制数据到RAM中运行。
 楼主| LPcfANS 发表于 2009-4-3 10:38 | 显示全部楼层

谢谢OO。你的意思是把烧WINCE的地址烧进没有操作系统的程序

我手里的2440启动WINCE需要。NBOOT1ST,NBOOT2ST,UMON,EBOOT。<br />比较麻烦,不用操作系统的话,希望能有一个BOOTLOADER就可以启动应用程序。
computer00 发表于 2009-4-3 10:55 | 显示全部楼层

那你可以自己写一个简单的loader,放在地址0就可以了

  
 楼主| LPcfANS 发表于 2009-4-3 14:17 | 显示全部楼层

谢谢。。。

  
 楼主| LPcfANS 发表于 2009-4-3 14:18 | 显示全部楼层

谢谢。。。。

  
阿南 发表于 2009-4-3 17:40 | 显示全部楼层

re:

8楼:&nbsp;呵呵:&nbsp;<br /><br />1.开发的时候可以使用JTAG烧写,但在生产时通常都用编程器直接烧写NAND&nbsp;Flash.<br />2.2410和2440支持NAND&nbsp;Flash启动,复位时,处理器硬件上NAND&nbsp;Flash控制器会通过一个叫Steppingstone的东东自动将NAND&nbsp;Flash的前4k代码加载到内部的BootSRAM中,然后开始运行该代码(注意了:不是直接在Flash中运行,而是在处理器自身的SRAM中运行)。<br />3.可以写一个小于4K的Bootloader,完成你的应用程序的下载和加载工作。所以完成之后有两个程序,一个是该Bootloader(小于4K),另一个是你的应用程序。<br />详情请参考《ARM&nbsp;Linux入门与实践》一书,前半部分是硬件和裸奔。<br />Bootloader也可以直接在书友会(http://group.**/999/)上找到源代码&nbsp;<br />&nbsp;<br />
whywhyyyz33 发表于 2009-5-31 19:21 | 显示全部楼层

在windows下安装jtag驱动出现的问题

安装jtag的驱动文件giveio.inf时,windows给出了这个提示:<br />这个inf文件的安装段落无效<br /><br />网上搜了一下,可能是使用了盗版的精简版windowsxp,缺少一些文件,所以不能安装,请问如果不想重做系统有办法解决么??<br /><br />giveio.inf&nbsp;的内容如下:<br /><br />;&nbsp;giveio.inf<br />;<br />;&nbsp;Installation&nbsp;file&nbsp;(.inf)&nbsp;for&nbsp;the&nbsp;giveio&nbsp;device.<br />;<br />;&nbsp;(c)&nbsp;Copyright&nbsp;2000&nbsp;&nbsp;<br />;<br /><br />[Version]<br />Signature=&quot;$Windows&nbsp;NT$&quot;<br />Provider=%%<br />ClassGUID={4d36e978-e325-11ce-bfc1-08002be10318}<br />Class=Unknown<br />CatalogFile=giveio.cat<br />DriverVer=05/13/2000<br /><br />[DestinationDirs]<br />DefaultDestDir&nbsp;&nbsp;&nbsp;=&nbsp;12<br /><br />;<br />;&nbsp;Driver&nbsp;information<br />;<br /><br />[Manufacturer]<br />%%&nbsp;&nbsp;&nbsp;=&nbsp;.Mfg<br /><br />[.Mfg]<br />%.DeviceDesc0%&nbsp;=&nbsp;giveio,&nbsp;<br /><br /><br />;<br />;&nbsp;General&nbsp;installation&nbsp;section<br />;<br /><br />[giveio]<br /><br />;<br />;&nbsp;File&nbsp;sections<br />;<br /><br /><br />;<br />;&nbsp;Service&nbsp;Installation<br />;<br /><br />[giveio.Services]<br />AddService&nbsp;=&nbsp;giveio,&nbsp;0x00000002&nbsp;,&nbsp;giveio_Service_Inst,&nbsp;giveio_EventLog_Inst<br /><br />[giveio_Service_Inst]<br />ServiceType&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;SERVICE_KERNEL_DRIVER<br />StartType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;SERVICE_DEMAND_START<br />ErrorControl&nbsp;&nbsp;&nbsp;=&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;SERVICE_ERROR_IGNORE<br />LoadOrderGroup&nbsp;=&nbsp;Pointer&nbsp;Port<br />ServiceBinary&nbsp;&nbsp;=&nbsp;%12%giveio.sys<br /><br /><br />[giveio_EventLog_Inst]<br />AddReg&nbsp;=&nbsp;giveio_EventLog_AddReg<br /><br />[giveio_EventLog_AddReg]<br />HKR,,EventMessageFile,0x00020000,&quot;%SystemRoot%System32IoLogMsg.dll;%SystemRoot%System32driversgiveio.sys&quot;<br />HKR,,TypesSupported,0x00010001,7<br /><br /><br /><br /><br />;<br />;&nbsp;Source&nbsp;file&nbsp;information<br />;<br /><br />[SourceDisksNames.x86]<br />1&nbsp;=&nbsp;%DiskId1%,,,&quot;&quot;<br /><br />[SourceDisksFiles]<br />;&nbsp;Files&nbsp;for&nbsp;disk&nbsp;&nbsp;Installation&nbsp;Disk&nbsp;#1&nbsp;(Ports)<br />giveio.sys&nbsp;=&nbsp;1,,<br /><br /><br />[Strings]<br /><br />;<br />;&nbsp;Non-Localizable&nbsp;Strings<br />;<br /><br />REG_SZ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x00000000<br />REG_MULTI_SZ&nbsp;&nbsp;&nbsp;=&nbsp;0x00010000<br />REG_EXPAND_SZ&nbsp;&nbsp;=&nbsp;0x00020000<br />REG_BINARY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x00000001<br />REG_DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x00010001<br />SERVICEROOT&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&quot;SystemCurrentControlSetServices&quot;<br /><br />;<br />;&nbsp;Localizable&nbsp;Strings<br />;<br /><br />.DeviceDesc0&nbsp;=&nbsp;&quot;giveio&quot;<br />DiskId1&nbsp;=&nbsp;&quot;&nbsp;Installation&nbsp;Disk&nbsp;#1&nbsp;(Ports)&quot;<br />&nbsp;=&nbsp;&quot;&quot;<br />
lelee007 发表于 2009-6-26 23:05 | 显示全部楼层

LZ看看2410的小石头吧

圈圈跟南哥说的已经很明白了<br /><br />你可以在你的代码的reset程序段里边用一段代码来实现从NAND&nbsp;FLASH把数据copy到SDRAM里的代码,然后跳到SDRAM的空间去执行就OK了
l0p0c 发表于 2009-6-27 13:53 | 显示全部楼层

裸奔是绝对可以的!

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

69

主题

1614

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部