搜索
bottom↓
楼主: liuweiele

基于ARM的 多进程操作系统 -- 最新移植到S3C2440 -- 2440BSP源码公布

[复制链接]

出0入0汤圆

 楼主| 发表于 2011-8-18 19:17:34 | 显示全部楼层
回复【98楼】apple_01
知道怎么回事了:要建立下级目录 rom。
已经运行了,全屏的时候,帧速:最大 16帧/秒
把nandflash启动部分直接复制过来也不行,还有不知道哪里的相关设置。
-----------------------------------------------------------------------

1600万色模式 还是 65K色模式 ? 65K色模式,性能会高一些,以2440的性能,800x600,24bpp,有点勉强.
在S3C2450上, 800x480,24bpp,InfoNES全屏帧速为 27fps

你把你的板子原来的NandFlash启动代码发来,我帮你修改一下.

出0入0汤圆

发表于 2011-8-18 19:51:29 | 显示全部楼层
有个2440的板子都放了一年了,准备拿来用起来

出0入0汤圆

发表于 2011-8-19 09:03:51 | 显示全部楼层
楼主,可能用到的在下面:

点击此处下载 ourdev_669007JA80T7.zip(文件大小:13K) (原文件名:inc.zip)
点击此处下载 ourdev_669008GL6F5H.zip(文件大小:18K) (原文件名:src.zip)

出0入0汤圆

发表于 2011-8-19 09:51:51 | 显示全部楼层
发现一个问题,不知道是否与无法在nandflash运行有关:


(原文件名:err_11.JPG)

友善的板子,该值为:0x30000000

出0入0汤圆

 楼主| 发表于 2011-8-19 09:58:10 | 显示全部楼层
回复【103楼】apple_01
-----------------------------------------------------------------------

是的,这是一个虚拟地址.
不管用哪个型号的CPU,操作系统内核起始地址都为:0x80000000.

整个系统的内存空间为:
用户空间:0x00000000 ~ 0x7FFFFFFF
内核空间:0x80000000 ~ 0xFFFFFFFF

出0入0汤圆

发表于 2011-8-19 10:10:18 | 显示全部楼层
那不是要增加一个boot来引导操作系统?
好象没有地方放这样的boot, 0x00000000 ~ 0x7fffffff 都是用户程序区了

出0入0汤圆

 楼主| 发表于 2011-8-19 10:36:38 | 显示全部楼层
回复【102楼】apple_01
-----------------------------------------------------------------------

这里最新的启动文件 s3c2440_init.s,直接替换原来的文件就可以了,支持 K9F1208U,K9F1G08U 两种 NandFlash...
我手上没有 S3C2440 + K9F1G08U 的硬件,所以没有实际测试,
如果不行,你把问题反馈给我.

点击此处下载 ourdev_669098QI8MRM.rar(文件大小:7K) (原文件名:s3c2440_init.rar)


(原文件名:007.JPG)

出0入0汤圆

 楼主| 发表于 2011-8-19 10:45:58 | 显示全部楼层
回复【105楼】apple_01
那不是要增加一个boot来引导操作系统?
好象没有地方放这样的boot, 0x00000000 ~ 0x7fffffff 都是用户程序区了
-----------------------------------------------------------------------

不一定要增加一个boot.
在S3C2440上,操作系统内核在物理地址是运行在0x30000000上,这个地址是可以按实际的硬件进行变更,
在MMU没有工作之前,内核运行在这个物理空间上,MMU初始化之后,会把这个物理地址映射到0x80000000的
位置,也就是虚拟地址.

0x00000000 ~ 0x7FFFFFFF 也属于虚拟地址空间, 所有用户进程(应用程序)都运行在这个空间内,
并在启动多个用户进程时,每个用户进程的空间是重叠的.
例如,你可以同时运行 3个 HelloWorld + 2个 InfoNES ,一共 5 个进程,起始运行地址也相同,
但它们却能互不干扰,各自同时独立运行.

出0入0汤圆

 楼主| 发表于 2011-8-19 10:49:28 | 显示全部楼层
回复【105楼】apple_01
-----------------------------------------------------------------------
在这个帖子的 71楼 有启动程序的工作流程说明:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4823445&bbs_page_no=1&search_mode=4&search_text=liuweiele&bbs_id=9999

出0入0汤圆

发表于 2011-8-19 11:41:34 | 显示全部楼层
使用新的s3c2440_init.s 编译后的情况:


(原文件名:err_12.JPG)
红框的地方,改成任意值对后面的download没有任何影响。

(原文件名:err_13.JPG)
使用H-JTAG来干活吧,选择对应的选项

(原文件名:err_16.JPG)
初始化脚本。 不使用该脚本,对后面没有任何作用。

(原文件名:err_14.JPG)
nand flash 的配置

(原文件名:err_15.JPG)
烧写。。。。


H-JTAG用到的flash init 文件ourdev_669100AJIOZ2.zip(文件大小:463字节) (原文件名:H-Flasher_mini2440.zip)

micro2440 用的 bootloaderourdev_669101M2BBJP.zip(文件大小:86K) (原文件名:supervivi-128M.zip)

使用DNW下载,在RAM运行的信息。能正确显示界面。
ourdev_669102DK1ZB1.zip(文件大小:3K) (原文件名:ok_run_ram.zip)

DNW来download后,直接切换到nandflash,热复位启动后,运行的信息
ourdev_669103TBKA2D.zip(文件大小:3K) (原文件名:ok_run_flash_online.zip)


DNW来download后,断电,切换到nandflash,冷启动,没有任何信息。

使用H-JTAG烧写,也没有任何信息。

出0入0汤圆

 楼主| 发表于 2011-8-19 12:07:16 | 显示全部楼层
回复【109楼】apple_01
----------------------------------------------------------------------

最新的代码在 106楼,重新下载一下.

或者,在 s3c2440_init.s 的第 765 行,

将:     mov r6,#1
改为:   mov r6,#0

这个设置 nandflash 地址周期; 0->4个cycle,1-> 5个cycle,
对于K9F1G08U, 应该设置为 0.

出0入0汤圆

发表于 2011-8-19 12:16:59 | 显示全部楼层
热启动可以;
冷启动没有动静。

会不会是 友善的 bootloader 不支持 ?

不管我设置 DNW的 download address 为任何值,bootlaoder 均为:

Now, Downloading [ADDRESS:30000000h,TOTAL:560786]

30000000h,好象是固定了

出0入0汤圆

 楼主| 发表于 2011-8-19 12:24:08 | 显示全部楼层
回复【111楼】apple_01
-----------------------------------------------------------------------

没用过 友善的 bootloader ,所以不太清楚.
你只要把 s3c2440_system.bin 烧录到NandFlash 0地址就可以了

出0入0汤圆

发表于 2011-8-19 12:45:52 | 显示全部楼层
回复【112楼】liuweiele  Liuwei
-----------------------------------------------------------------------
你只要把 s3c2440_system.bin 烧录到NandFlash 0地址就可以了
==========================================================
整个系统的内存空间为:
用户空间:0x00000000 ~ 0x7FFFFFFF
内核空间:0x80000000 ~ 0xFFFFFFFF
==================================
0地址 是不是 用户空间?

是不是我理解得有问题?

用 H-JTAG 把s3c2440_system.bin 烧到 NandFlash 0地址,也是没有动静。郁闷。。。。。。。。。。

友善的测试代码,就能写到nandflash里运行。

出0入0汤圆

 楼主| 发表于 2011-8-19 14:30:24 | 显示全部楼层
回复【113楼】apple_01
-----------------------------------------------------------------------

MMU启动之后,通过地址重映射,0x00000000~0x7FFFFFFF 划分为用户空间,
这点和WINCE是类似的.

出0入0汤圆

发表于 2011-8-19 14:34:31 | 显示全部楼层
wince 需要 Eboot的哦

出0入0汤圆

 楼主| 发表于 2011-8-19 14:41:04 | 显示全部楼层
回复【113楼】apple_01
-----------------------------------------------------------------------

试试最新的启动文件,看是否可以用K9F1G08启动.
点击此处下载 ourdev_669160BB1RKK.rar(文件大小:7K) (原文件名:s3c2440_init.rar)

出0入0汤圆

 楼主| 发表于 2011-8-19 14:45:45 | 显示全部楼层
回复【115楼】apple_01
-----------------------------------------------------------------------

这个 S3C2440 BSP上,我把boot功能集成到一起了,只要烧录到Flash 0地址,开机就能自动加载运行操作系统.
当然,用户也可以用自己的第三方boot,只要能把 S3C2440_System.Bin 复制到 0x30000000 运行就可以了.

出0入0汤圆

发表于 2011-8-19 16:04:22 | 显示全部楼层
对比了一下,K9F1G08U那里的部分代码,发现区别:
===================================================================================
                      友善的S3C2440.s                     楼主的 S3C2440_init.s
====================================================================================  
NandFlashBoot
nand_boot_beg

                       bl        ReadNandPage               bl        ReadNandPage
                       add        r9, r9, #512               add        r9, r9, #2048
                       .....
                       cmp        r8, #5120                   cmp        r8, #1024
                       bcc        %B2                         bcc        %B2

                    紧跟从nandflash拷贝代码到SDRAM           直接跳到 0x30000000
=====================================================================================
  修改了 r9 和 r8  的值后,依然无效.
  是否少了 将nandflash代码拷贝到SDRAM的过程 ?

  下载到0x30000000后,拨到nandflash启动,只要不断电,CPU可以反复复位,操作系统可以反复启动;
                                       一断电,神马都是浮云了.

出0入0汤圆

 楼主| 发表于 2011-8-19 16:55:57 | 显示全部楼层
回复【118楼】apple_01
-----------------------------------------------------------------------

只要实现 K9F1G08 的 void ReadNandPage(int page_addr,void *buf) 函数就行了

出0入0汤圆

发表于 2011-8-19 17:16:33 | 显示全部楼层
不断电则可以运行,断电则不行的现象,估计是:
=====================================================================
Download后,SDRAM保留了nandflash的代码,所以可以反复运行;
断电后,SDRAM的内容丢失,而boot又没有copy代码到SDRAM,所以运行不起来。
======================================================================
已经是用H-JTAG直接往Nandflash 的 0 地址写的了,应该不会是写的地址问题。

用H-JTAG烧写完后,系统一点反应都没有,CPU复位,断电上电都是没有动静;

只有用norflash里的boot来download的时候,不断电才有系统的运行。

出0入0汤圆

 楼主| 发表于 2011-8-19 17:49:36 | 显示全部楼层
如果实在不行,你暂时先用这个 NorFlash 启动文件,
把 S3C2440_System.bin 烧录到 mrico2440 的 NorFlash 0 地址处就可以了,并把开发板设置成NorFlash启动模式.

点击此处下载 ourdev_669253E373OX.rar(文件大小:7K) (原文件名:s3c2440_init(NorFlash).rar)

出0入0汤圆

发表于 2011-8-19 18:15:00 | 显示全部楼层
Norflash的,能从串口出来信息,但无法进入系统:
===============================================

********************************************
* RO 80000000H - 80088E70H; Size: 560752
* RW 80088E70H - 80548ADCH; Size: 4979820
* ZI 80088ED4H - 80548ADCH; Szie: 4979720
* [00001234][00005678][00000000][00000000]
********************************************
atoi=805320712,atoi=805320708,strlen=4
abs=-1234,1234

0000_0000:  3F 00 00 EA 12 00 00 EA 17 00 00 EA 22 00 00 EA
0000_0010:  1B 00 00 EA FE FF FF EA 07 00 00 EA 00 00 00 EA
0000_0020:  BD 01 00 EA 04 D0 4D E2 01 00 2D E9 14 06 9F E5
0000_0030:  00 00 90 E5 04 00 8D E5 01 80 BD E8 04 D0 4D E2


******************************
*        System Startup      *
******************************
Version:0.0.1 (2011/07/09)
System Build Date: Jul 27 2011
System Build Time: 17:26:27
System Local Time: 2011-8-6 16:02:59
ProcessorInfo:
-> Family:  ARM920T
-> String:  S3C2440A-40
-> ID:      00002440
-> Clock:   400MHZ
KerelHeapInfo:
-> BaseAddr:  82000000H
-> PageSize:  128Byte
-> TotalSize: 32505855Byte
UserHeapInfo:
-> BaseAddr:  81000000H
-> PageSize:  1048576Byte
-> TotalSize: 16777215Byte
set_intr -> 8 - -7FFF8B8CH
CreateThread -> 82000300H,255
CreateThread -> 82000780H,254
CreateThread -> 82004A00H,16
OS Core Startup
-------------------》停止了
===============================================

BTW,Nandflash的的启动代码要么没有copy代码到SDRAM;要么没有启动得了。

出0入0汤圆

发表于 2011-8-19 18:38:13 | 显示全部楼层
回复【121楼】liuweiele  Liuwei
-----------------------------------------------------------------------
请教下大侠  不知大侠有博客没   小弟最近也在学习2440   想多向前辈请教   我在21IC也看到了大侠的主题帖

出0入0汤圆

 楼主| 发表于 2011-8-19 19:38:48 | 显示全部楼层
回复【123楼】ycz9999
回复【121楼】liuweiele  liuwei
-----------------------------------------------------------------------
请教下大侠  不知大侠有博客没   小弟最近也在学习2440   想多向前辈请教   我在***也看到了大侠的主题帖   

-----------------------------------------------------------------------

暂时还没有开博客

出0入0汤圆

 楼主| 发表于 2011-8-19 19:39:43 | 显示全部楼层
回复【123楼】ycz9999
-----------------------------------------------------------------------

是不是每次都停在 OS Core Startup ?

出0入0汤圆

 楼主| 发表于 2011-8-19 20:31:49 | 显示全部楼层
推荐各位使用 S3C2416, 和 S3C2440 相比,

无论是价格,性能,功耗都有绝对优势.

S3C2440即将淘汰,芯片价格比 S3C2416 还要贵30%左右.

出0入0汤圆

发表于 2011-8-19 23:17:54 | 显示全部楼层
回复【125楼】liuweiele  Liuwei
-----------------------------------------------------------------------
是不是每次都停在 OS Core Startup ?
=========================================
是的。

----------------------------------------
S3C2416的开发板很少有卖的,更没有卖S3C2416核心板了。
小批量的产品,没有厂家肯给焊接BGA的元件,只能买核心板了。
市面上有哪些核心板? 只有 2440/6410的,没有 2416的。2416再便宜,也无法进入产品。
何况市面上,2416的开发板比2440的贵很多。

出0入0汤圆

 楼主| 发表于 2011-8-19 23:41:50 | 显示全部楼层
回复【127楼】apple_01
-----------------------------------------------------------------------

我明天用2440的板子调试一下 NorFlash 启动方式.

出0入0汤圆

发表于 2011-8-20 00:20:15 | 显示全部楼层
回复【128楼】liuweiele  Liuwei
-----------------------------------------------------------------------
支持楼主!

能启动,操作系统才可以跑起来。

NorFlash 和 NandFlash 都能启动是应用的第一步。

出0入0汤圆

发表于 2011-8-20 08:18:54 | 显示全部楼层
强大啊!顶楼主!

出0入0汤圆

 楼主| 发表于 2011-8-20 11:14:21 | 显示全部楼层
回复【129楼】apple_01
-----------------------------------------------------------------------

这个是我已经测试通过的 NorFlash 版启动代码, 实际测试硬件为: S3C2440 + SST39VF3201.

替换原来的 s3c2440_init.s 文件,重新编译整个BSP后,
将生成的S3C2440_System.Bin 烧录到 NorFlash 中就可以了.
并将 S3C2440 设置成 NorFlash 启动模式,上电后便可自动运行.

点击此处下载 ourdev_669404WZ4KL1.rar(文件大小:7K) (原文件名:s3c2440_init_norflash.rar)

出0入0汤圆

 楼主| 发表于 2011-8-20 14:31:56 | 显示全部楼层
新的触摸屏驱动,完全解决了之前 触摸屏拖动 响应不流畅的问题,现在可以非常流畅地拖动窗口了.

点击此处下载 ourdev_669449ULIAJW.rar(文件大小:5K) (原文件名:s3c2440_TouchScreen_Drv.rar)

出0入0汤圆

发表于 2011-8-20 14:35:06 | 显示全部楼层
不如 叫圣斗士操作系统吧。。。。

出0入0汤圆

发表于 2011-8-20 18:04:37 | 显示全部楼层
星期一测试我这里的硬件

出0入0汤圆

发表于 2011-8-22 11:48:15 | 显示全部楼层
楼主,我这里实在不行,不知道是ADS有问题还是别的啥问题.

所有的版本,包括以前能在RAM里运行的版本,现在全是到 OS Core Startup 就停止了

楼主,你那里能否按我这里的硬件编译一个bin文件 ?
============================================
norflash : ST39VF1601
nandfoash: K9F1G08

LCD的参数,按附件:
点击此处下载 ourdev_669913FLQQ0A.zip(文件大小:1K) (原文件名:LCD.zip)

出0入0汤圆

 楼主| 发表于 2011-8-22 12:11:02 | 显示全部楼层
回复【135楼】apple_01
-----------------------------------------------------------------------
你是否已将micro2440设置成 NorFlash 启动模式 ?

烧录到NorFlash:

65K色版本:
点击此处下载 ourdev_669924H3RS84.rar(文件大小:187K) (原文件名:S3C2440_System_16bpp.rar)

1600万色版本:
点击此处下载 ourdev_669925ICW74G.rar(文件大小:187K) (原文件名:S3C2440_System_24bpp.rar)

出0入0汤圆

 楼主| 发表于 2011-8-22 12:19:47 | 显示全部楼层
我已经在: Mini2440 + SST39VF6410 + 4.3TFT(东华,480x272,24bpp)
          Real2440 + SST39VF3201 + 3.2TFT(ILI9325,240x320,16bpp)
          GEC2440  + AM29LV800   + 8.0TFT(群创,800x480,18bpp)

这几款硬件平台实际测试,可以成功运行.

出0入0汤圆

发表于 2011-8-22 13:49:00 | 显示全部楼层
测试我这里的Microsoft 2440 , norFlash :SST39VF1610 , nandFlash : K9F1G08

特意另外找了一块一起测试.效果也是一样:

********************************************
* RO 80000000H - 80088E9CH; Size: 560796
* RW 80088E9CH - 80633108H; Size: 5939820
* ZI 80088F00H - 80633108H; Szie: 5939720
* [00001234][00005678][00000000][00000000]
********************************************
atoi=805320604,atoi=805320600,strlen=4
abs=-1234,1234

0000_0000:  3F 00 00 EA 12 00 00 EA 17 00 00 EA 22 00 00 EA
0000_0010:  1B 00 00 EA FE FF FF EA 07 00 00 EA 00 00 00 EA
0000_0020:  B9 01 00 EA 04 D0 4D E2 01 00 2D E9 04 06 9F E5
0000_0030:  00 00 90 E5 04 00 8D E5 01 80 BD E8 04 D0 4D E2


******************************
*        System Startup      *
******************************
Version:0.0.1 (2011/07/09)
System Build Date: Jul 27 2011
System Build Time: 17:26:27
System Local Time: 2000-0-0 00:00:00
ProcessorInfo:
-> Family:  ARM920T
-> String:  S3C2440A-40
-> ID:      00002440
-> Clock:   400MHZ
KerelHeapInfo:
-> BaseAddr:  82000000H
-> PageSize:  128Byte
-> TotalSize: 32505855Byte
UserHeapInfo:
-> BaseAddr:  81000000H
-> PageSize:  1048576Byte
-> TotalSize: 16777215Byte
set_intr -> 8 - -7FFF8C88H
CreateThread -> 82000300H,255
CreateThread -> 82000780H,254
CreateThread -> 82004A00H,16
OS Core Startup                -------->停止了,为什么总是卡在这里?
=================================================

附件的bin可以在我这里的norflash 启动:
ourdev_669944TZA0O5.zip(文件大小:86K) (原文件名:supervivi-128M.zip)
因为这就是我这里硬件norflash启动的ootloader。请看看是否能在你的硬件(norflash)运行。

出0入0汤圆

 楼主| 发表于 2011-8-22 14:30:46 | 显示全部楼层
回复【138楼】apple_01
-----------------------------------------------------------------------

试试这个, 使用了默认的 SDRAM 时序参数,性能会低一些,
烧录到 NorFlash.
点击此处下载 ourdev_669966FK125T.rar(文件大小:187K) (原文件名:S3C2440_System.rar)

出0入0汤圆

发表于 2011-8-22 15:15:40 | 显示全部楼层
回复【139楼】liuweiele  Liuwei
-----------------------------------------------------------------------
没有改善,还是一样,停在那里。

手累了,休息手!  NND,ADS需要鼠标点击的次数是别的软件的3倍!

=============================================================
还有郁闷的: 楼主发数码相框之前的操作系统,是可以运行在RAM中的;
             数码相框之后就发生系统停止的现象,数码相框是毒药?
             是SDK,还是哪里改动了?
             搞不清楚哪个SDK套哪个操作系统了 __@

出0入0汤圆

发表于 2011-8-22 15:34:16 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2011-8-22 15:51:37 | 显示全部楼层
回复【140楼】apple_01
-----------------------------------------------------------------------

刚刚那个只改了Memcfg.inc,忘记改 s3c2440_init.s 了,

试试这个行不行:
点击此处下载 ourdev_669979JGZ59T.rar(文件大小:187K) (原文件名:S3C2440_System.rar)

出0入0汤圆

 楼主| 发表于 2011-8-22 16:02:06 | 显示全部楼层
回复【140楼】apple_01
回复【139楼】liuweiele  liuwei
-----------------------------------------------------------------------
没有改善,还是一样,停在那里。
手累了,休息手!  nnd,ads需要鼠标点击的次数是别的软件的3倍!
=============================================================
还有郁闷的: 楼主发数码相框之前的操作系统,是可以运行在ram中的;
             数码相框之后就发生系统停止的现象,数码相框是毒药?
             是sdk,还是哪里改动了?
             搞不清楚哪个sdk套哪个操作系统了 __@
-----------------------------------------------------------------------

跟SDK没关系的.
我也很郁闷,我手上有3套不同的 2440 硬件,
居然都能丛NorFlash正常启动,这让我很难查出问题所在.

出0入0汤圆

发表于 2011-8-22 16:40:26 | 显示全部楼层
回复【142楼】liuweiele  Liuwei
-----------------------------------------------------------------------

刚刚那个只改了Memcfg.inc,忘记改 s3c2440_init.s 了,

试试这个行不行:
点击此处下载 ourdev_669979JGZ59T.rar(文件大小:187K) (原文件名:S3C2440_System.rar)  
===================================================================================
现象也是一样。

重新装了ADS1.2,也重新找最原始的文件来搞,都是停在那里。
真是烦了 ADS,居然还有这样的事情,同样的SDK和操作系统,竟然编译以后前后有别!
遗憾的是当初没有备份能运行的bin 文件下来。不知道是否PJ不完全的 原因。
MDK从来不干这样的事情,楼主啥时候搞个 MDK版本的?

我再找一个 ADS装转看。

====================
你的3套2440硬件和我的不一样。

出0入0汤圆

 楼主| 发表于 2011-8-22 17:30:34 | 显示全部楼层
回复【144楼】apple_01
-----------------------------------------------------------------------

量一下RTC电源是否正常? 32768晶体是否起振?
如果RTC不能正常工作,内核也会停在 OS Core Startup,

因为在BSP中,以TICK中断作为内核时钟源.

出0入0汤圆

 楼主| 发表于 2011-8-22 18:08:00 | 显示全部楼层
将 GEC2440 的 NorFlash(AM29LV800DB) 换成 Micro2440 的 SST39VF1601,
系统依然可以启动.


(原文件名:P8220001.JPG)


(原文件名:P8220002.JPG)

出0入0汤圆

发表于 2011-8-22 18:27:59 | 显示全部楼层
确实,电池没有电了(因为在winCE里,时钟并不重要,所以没有留意),手太累了。
明天再继续。

出0入0汤圆

发表于 2011-8-23 10:30:45 | 显示全部楼层
好了,楼主,Norflash 可以启动了。

测试了一下,触摸拖动的时候,被拖动的窗体总是向屏幕的右方跳动。
出现: 拖动后,一放触摸,窗体停下的位置与触摸停止前的位置有变动,大多数是靠右了;
       在拖拉的时候,突然提起触摸,窗体出现完全停靠在屏幕右边的情况。

=============================================
建议: 时钟那里,是否可以改一下,不用判断时间值的有效性?这样可以先让系统运行起来,进入系统后修正时间。
       备用电池没有电了,系统就进不去了,让使用的人搞不清楚什么回事,最好是给出故障的原因,以便修正。

出0入0汤圆

 楼主| 发表于 2011-8-23 11:23:50 | 显示全部楼层
回复【148楼】apple_01
-----------------------------------------------------------------------

=============================================
建议: 时钟那里,是否可以改一下,不用判断时间值的有效性?这样可以先让系统运行起来,进入系统后修正时间。
       备用电池没有电了,系统就进不去了,让使用的人搞不清楚什么回事,最好是给出故障的原因,以便修正。

///////////////

造成内核不能启动,并不是因为时间值无效,而是由于TICK没有工作造成的,
在S3C2440上,TICK电源由 VDD_RTC提供,如果这路电源不正常,会造成TICK/RTC
无法正常工作,当然也无法产生TICK中断了,而在这个 2440BSP中,操作系统内核
是由 TICK 中断驱动的.

用户也可以在 OS_Arch_C.c -> arch_KernelTickTimerInit 函数中,修改源码,改用其它
定时器来实现.

arch_KernelTickTimerInit 函数原型和说明:

int arch_KernelTickTimerInit(void (*handler)(void));

这个函数由操作系统调用,用户可以在这个函数中,初始化一个定时器.

该函数的输入参数:handler,是一个回调函数指针,由操作系统内核传入,
在实际的定时器中断中,调用这个回调函数.

函数返回值: 定时器每秒钟中断次数.

/////

例: 在S3C2440 BSP中,内核定时器相关代码如下:

static        void        (*os_tick_handler)(void);

static        void        TargetTickHandler(void)  //2440 Tick中断函数
{       
    os_tick_handler();                //调用内核的Tick回调函数
    ClearIntrPending(INT_NUM_TICK);   
}

/*============================================================================*/


int        arch_KernelTickTimerInit(void        (*handler)(void))
{
    volatile        RTC_REG        *rtc=PA2VA(RTC_REG_PA_BASE);
    volatile        INTC_REG *intc=PA2VA(INTC_REG_PA_BASE);
       
    os_tick_handler        =handler;                //保存内核TICK回调函数指针
       
    SetIntrHandler(INT_NUM_TICK,TargetTickHandler); //设置 2440 TICK 中断函数
       
    rtc->rRTCCON|=(1<<0);
    rtc->rTICINT=1;                                 //设置Tick时间为:(1+1)/128=15.625ms. 64HZ
       
    ClearIntrPending(INT_NUM_TICK);                  //使用 Tick中断
    EnableIntr(INT_NUM_TICK);
    rtc->rTICINT|=(1<<7);       
       
    return 64;                                       //返回Tick中断频率

}

出0入0汤圆

 楼主| 发表于 2011-8-23 11:47:06 | 显示全部楼层
回复【148楼】apple_01
-----------------------------------------------------------------------

测试了一下,触摸拖动的时候,被拖动的窗体总是向屏幕的右方跳动。
出现: 拖动后,一放触摸,窗体停下的位置与触摸停止前的位置有变动,大多数是靠右了;
       在拖拉的时候,突然提起触摸,窗体出现完全停靠在屏幕右边的情况。

////////

这种问题是由于大尺寸触摸屏容易受电磁干扰,如果触摸屏模拟信号线太长,也一样会造成抖动.
可以丛软件和硬件上解决这种问题:

软件方法: 在触摸屏驱动中,增加触摸屏采样滤波,例如,差值限幅 + 平均
硬件方法: 在触摸屏模拟输出端,加适当的滤波电容.

另外一方面,跟PCB布线也有很大关系,在我使用的2440平台上, GEC2440 + 8.0 TFT,就完全没有这种问题,
而 Mini2440 + 4.3寸 TFT,也会有轻微抖动.

出0入0汤圆

发表于 2011-8-23 12:53:29 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-23 13:25:12 | 显示全部楼层
MARK...

出0入0汤圆

发表于 2011-8-23 14:17:39 | 显示全部楼层
1、硬件电路改进了一下,没有电池也可以启动了。
2、触摸屏那里,已经有滤波电容(不过布板的位置不敢苟同),可能需要软件处理。
3、发现: GPB5 -- GPB8 控制的LED灯闪的频率太快,是不是内核对这里操作太频繁了,或者操作的时间间隔太小?

出0入0汤圆

发表于 2011-8-23 14:31:48 | 显示全部楼层
楼主,有下面几个问题:
1、开机自动运行某个程序,能否实现?
2、能否提供输入法?
3、能否对鼠标、键盘的支持?
4、在应用程序中直接对2440的I/O控制,会不会影响内核的运行?
5、串口1(目前是作为调试信息的输出来使用的)是否能释放出来作为普通的串口使用?

出0入0汤圆

 楼主| 发表于 2011-8-23 14:43:40 | 显示全部楼层
回复【153楼】apple_01
1、硬件电路改进了一下,没有电池也可以启动了。
2、触摸屏那里,已经有滤波电容(不过布板的位置不敢苟同),可能需要软件处理。
3、发现: gpb5 -- gpb8 控制的led灯闪的频率太快,是不是内核对这里操作太频繁了,或者操作的时间间隔太小?
-----------------------------------------------------------------------

1. ....

2.试试这个触摸屏驱动: 16次采样 + 平均滤波(对CPU占用比相对高一些)
点击此处下载 ourdev_670383O8SZSH.rar(文件大小:5K) (原文件名:TouchScreen_Drv.rar)

3.在 OS_Arch_C.c  -> TargetTickHandler (Tick定时器中断服务函数)中,
  把 LED 闪烁的语句去掉就可以了,这部分代码是用来测试Tick中断是否正常工作(每一次Tick中断,对LED取反),
  平时可以去掉这个功能.

出0入0汤圆

 楼主| 发表于 2011-8-23 15:05:30 | 显示全部楼层
回复【154楼】apple_01
楼主,有下面几个问题:
1、开机自动运行某个程序,能否实现?
2、能否提供输入法?
3、能否对鼠标、键盘的支持?
4、在应用程序中直接对2440的i/o控制,会不会影响内核的运行?
5、串口1(目前是作为调试信息的输出来使用的)是否能释放出来作为普通的串口使用?
-----------------------------------------------------------------------

///////////

1. 目前,在免费版本中,屏蔽掉了 开机自动运行指定应用程序 的功能;
   (在系统盘根目录下,有一个 Startup 目录,这个就是为 开机自动运行指定应用程序而存在的!)
   但用户仍可以用变通的方法来实现,如果有必要,我将介绍如何实现这个功能

2. 输入法暂时没有集成到内核中,用户可以在应用程序使用第三方输入法,我目前做的一些
   项目就是用这种方式.

3. 可以支持键盘,鼠标部分暂时还没完成,主要光标指示部分还没开始做,
   这些在后续版本会实现,这对应用程序来讲,是透明的...

4. 应用程序操作IO,通过设备驱动程序,不会影响内核运行.

5. 调用串口,不一定要使用串口1, 在 DbgUart_Drv.c 文件中,
   将 arch_DebugPutch, arch_DebugGetch, arch_DebugInit
   按你实际使用的串口来实现就可以了,这些函数也可以为空,
   这样可以省出一个串口作为其它通用功能.

出0入0汤圆

发表于 2011-8-23 16:36:23 | 显示全部楼层
尝试过往Startup 目录放 “数码相框”,结果不成功,所以问一下。

另外,新版的 S3C2440_System 里的 USB驱动编译出错,无法通过,只能用旧版的,才可以通过编译。(用SDK新版)

出0入0汤圆

 楼主| 发表于 2011-8-23 16:47:34 | 显示全部楼层
回复【157楼】apple_01
尝试过往startup 目录放 “数码相框”,结果不成功,所以问一下。
另外,新版的 s3c2440_system 里的 usb驱动编译出错,无法通过,只能用旧版的,才可以通过编译。(用sdk新版)
-----------------------------------------------------------------------

把出错信息发来看看

出0入0汤圆

发表于 2011-8-23 17:00:13 | 显示全部楼层

这是第一次编译的结果 (原文件名:err_17.JPG)

如果把注释全部解除,又冒出:
rIN_CSR1_REG;
rOUT_CSR1_REG;
没有定义的错误,接着。。。。
最后就是make 过不去了。。。。

=================================
注意:在编译以前,把文件夹 :S3C2440_System_Data 删除了,让ADS自动建立,上面的错误就出来了

出0入0汤圆

 楼主| 发表于 2011-8-23 17:09:52 | 显示全部楼层
对于免费版,开机 自动运行指定应用程序 可以变通使用下面的方法:



(原文件名:008.JPG)

出0入0汤圆

 楼主| 发表于 2011-8-23 17:21:09 | 显示全部楼层
回复【159楼】apple_01
-----------------------------------------------------------------------
我重新上传一个最新版工程,全部可以编译通过.

点击此处下载 ourdev_670425GPS4M7.rar(文件大小:7.15M) (原文件名:S3C2440_System.rar)

出0入0汤圆

 楼主| 发表于 2011-8-23 17:40:22 | 显示全部楼层
这个是我优化过 SDRAM 参数;
实际测试过,在S3C2440上,SDRAM 性能可以提高 50% 以上.

下载解压后,替换原来的文件,重新编译即可:
点击此处下载 ourdev_670453SFKT9W.rar(文件大小:8K) (原文件名:s3c2440_sdram_优化版.rar)

出0入0汤圆

发表于 2011-8-23 17:43:51 | 显示全部楼层
MARK!DING

出0入0汤圆

发表于 2011-8-23 17:51:34 | 显示全部楼层
OK,自动运行和USB编译均正常了。

比较纠结的是:只能在RAM或norflash运行,无法在nandflash运行。

出0入0汤圆

 楼主| 发表于 2011-8-23 18:00:35 | 显示全部楼层
回复【164楼】apple_01
ok,自动运行和usb编译均正常了。
比较纠结的是:只能在ram或norflash运行,无法在nandflash运行。
-----------------------------------------------------------------------

我提供的BSP支持 K9F1208U 这个 NandFlash 启动,
由于我的2440平台不支持 K9F1G08U 启动, 所以不能实际测试这个NandFlash,
你可以参考 s3c2440_init.s 这个文件中的 K9F1208U 的启动代码,自行修改一下,
其实也不会太难,主要是修改 NandFlash 的 ReadNandPage 这个函数.

如果实在不行...把你板子上的 NandFlash 换成 K9F1208U.

出0入0汤圆

发表于 2011-8-23 18:19:15 | 显示全部楼层
在BSP.C里注_册了 nandflash 驱动,结果只运行到这里,RAM 运行:
=============================================
In idle
In SD ready
End id
RCA=0x8f39
SD Frequency is 25000000Hz
In stand-by
Set SDI 4bit Bus.
SD Card Init OK!
RegisterDrive -> 1 - 'SD Card'
BytesPerSector    ->512
SectorsPerCluster ->32
TotalClusters     ->51136
disk->get_sector_size=512
#### -> fmt=0 -  512,512
f_mount -> 1 - 0                   ---------> 停止了
======================================================

nandflash 那里主要牵涉到 nandflash.c, nandflash.h,S3C2440_init.s ,还有哪些?

出0入0汤圆

 楼主| 发表于 2011-8-23 18:40:12 | 显示全部楼层
回复【166楼】apple_01
-----------------------------------------------------------------------

NandFlash启动       -> s3c2440_init.s  
NandFlash磁盘设备   -> NandFlash.c

NandFlash 空间可以这样分配: 前8MB用来存放操作系统映像,剩余空间,可作为通用储存设备,挂接到文件系统.
甚至可以将一片 NandFlash 映射成 多个磁盘(最多32个)

出0入0汤圆

 楼主| 发表于 2011-8-23 18:43:23 | 显示全部楼层
回复【166楼】apple_01
-----------------------------------------------------------------------

你的NandFlash磁盘驱动有问题,会造成系统无法正常运行.

出0入0汤圆

发表于 2011-8-23 23:05:31 | 显示全部楼层
看来问题还比较严重,既不能启动,也造成系统无法正常运行。

出0入0汤圆

 楼主| 发表于 2011-8-23 23:36:34 | 显示全部楼层
回复【169楼】apple_01
-----------------------------------------------------------------------

Flash 驱动不正常,当然不能运行;
我这里只有 S3C2416/2450 版的 K9F1G08U 驱动,跟S3C2440是不一样的.

出0入0汤圆

 楼主| 发表于 2011-8-24 10:06:46 | 显示全部楼层
后续打算移植到 ATMEL / NXP 的 ARM9 ,
不知是否有人对此感兴趣?

出0入0汤圆

发表于 2011-8-24 10:48:24 | 显示全部楼层
很感兴趣,留个位置,将来来看

出0入0汤圆

 楼主| 发表于 2011-8-24 10:55:52 | 显示全部楼层
回复【172楼】zhang0352505 飞上天堂的猪
很感兴趣,留个位置,将来来看
-----------------------------------------------------------------------

有兴趣的可以留下使用的ARM开发板参数,
我统计到一定数量后,按使用人数最多方案的先移植.

出0入0汤圆

发表于 2011-8-25 12:25:28 | 显示全部楼层
这个目前就只能观望啊,太强了,刚刚开始学习

出0入0汤圆

 楼主| 发表于 2011-8-25 14:12:09 | 显示全部楼层
回复【174楼】ou513
这个目前就只能观望啊,太强了,刚刚开始学习
-----------------------------------------------------------------------

功能强大,使用和开发都很简单,跟 WIN32 API 非常接近.

出0入0汤圆

发表于 2011-8-25 22:35:27 | 显示全部楼层
赶紧记下!!

出0入0汤圆

发表于 2011-8-26 19:12:52 | 显示全部楼层
改得乱78糟,还是搞不掂 nandflash 启动。
把其它系统能启动的代码移植到楼主的启动代码里,结果是失败的。。。。。。。。。。。。

出0入0汤圆

发表于 2011-8-26 20:26:33 | 显示全部楼层
先记号一下 有时间 移植下试试!

出0入0汤圆

 楼主| 发表于 2011-8-29 10:14:31 | 显示全部楼层
回复【177楼】apple_01
-----------------------------------------------------------------------

也可以用 micro2440 自带的 bootloader 来启动.

出0入0汤圆

发表于 2011-8-30 00:23:24 | 显示全部楼层
liuweiele 我想请教一下,你的那块4.3的屏RGB是8:8:8 的吗,如果我用2440驱动的话,我有块7寸的日立的屏,但他的RGB是6:6:6的,我要怎么改呢,就是具体线怎么对应

出0入0汤圆

 楼主| 发表于 2011-8-30 00:56:07 | 显示全部楼层
回复【180楼】qingshan1989
-----------------------------------------------------------------------

是的,24位色.
如果是18位色,去掉R,G,B最低两位.

出0入0汤圆

发表于 2011-8-30 09:03:48 | 显示全部楼层
回复【181楼】liuweiele Liuwei
-----------------------------------------------------------------------

去掉最低两位,颜色会不会失真呢,是不是要经过一定的算法,把24位色转为18位?还是直接将3字节的24位色,忽略RGB低两位送到液晶显示呢?

出0入0汤圆

 楼主| 发表于 2011-8-30 10:14:47 | 显示全部楼层
回复【182楼】qingshan1989
-----------------------------------------------------------------------

直接忽略 R,G,B低两位

出0入0汤圆

发表于 2011-8-30 10:40:17 | 显示全部楼层
技术储备

出0入0汤圆

发表于 2011-8-30 11:21:35 | 显示全部楼层
谢谢你的回答,我照你的方法做一个转接板试试效果,忽略低两位

出0入0汤圆

 楼主| 发表于 2011-10-12 12:06:02 | 显示全部楼层
回复【178楼】728196
先记号一下 有时间 移植下试试!
-----------------------------------------------------------------------

计划移植到哪个硬件平台?
如果使用者愿意公布移植的BSP源码,
可以无偿获得最新版系统内核及技术支持.

出0入0汤圆

发表于 2011-10-12 12:33:03 | 显示全部楼层
回复【186楼】liuweiele Liuwei
回复【178楼】728196  
先记号一下 有时间 移植下试试!
-----------------------------------------------------------------------
计划移植到哪个硬件平台?
如果使用者愿意公布移植的bsp源码,
可以无偿获得最新版系统内核及技术支持.
-----------------------------------------------------------------------

哇,你是指内核源代码?

出0入0汤圆

发表于 2011-10-12 12:35:43 | 显示全部楼层
回复【173楼】liuweiele Liuwei
回复【172楼】zhang0352505 飞上天堂的猪
很感兴趣,留个位置,将来来看
-----------------------------------------------------------------------
有兴趣的可以留下使用的arm开发板参数,
我统计到一定数量后,按使用人数最多方案的先移植.
-----------------------------------------------------------------------

我先来一个,Friendly ARM 2440配NEC3.5寸屏。

出0入0汤圆

发表于 2011-10-13 09:08:52 | 显示全部楼层
回复【186楼】liuweiele  Liuwei
回复【178楼】728196
先记号一下 有时间 移植下试试!
-----------------------------------------------------------------------
计划移植到哪个硬件平台?
如果使用者愿意公布移植的bsp源码,
可以无偿获得最新版系统内核及技术支持.
-----------------------------------------------------------------------
我在88楼公布了移植到800x600 LCD的BSP源码   ^_^

出0入0汤圆

发表于 2011-10-13 09:33:12 | 显示全部楼层
这个很厉害 目前还没有这样的水平 先记录下 等以后再来看

出0入0汤圆

发表于 2011-10-13 19:10:05 | 显示全部楼层
顶楼主!

出0入0汤圆

 楼主| 发表于 2011-10-14 12:11:57 | 显示全部楼层
回复【188楼】HoldMyARM
回复【173楼】liuweiele liuwei
回复【172楼】zhang0352505 飞上天堂的猪  
很感兴趣,留个位置,将来来看  
-----------------------------------------------------------------------  
有兴趣的可以留下使用的arm开发板参数,  
我统计到一定数量后,按使用人数最多方案的先移植.
-----------------------------------------------------------------------
我先来一个,friendly arm 2440配nec3.5寸屏。
-----------------------------------------------------------------------

只要修改一下GUI_GDev.c 中的 LCD_XSIZE,LCD_YSIZE 后,重新编译就可以了

出0入0汤圆

发表于 2011-12-7 14:49:36 | 显示全部楼层
楼主最近没来了,我要去认识巴结楼主才行了,这种人才,必须认识!

出0入0汤圆

发表于 2011-12-7 16:22:27 | 显示全部楼层
楼上的,也来凑热闹了

出0入0汤圆

发表于 2011-12-7 16:30:25 | 显示全部楼层
mark!1

出0入0汤圆

 楼主| 发表于 2011-12-12 11:30:11 | 显示全部楼层
回复【193楼】goooogleman gooogleman
楼主最近没来了,我要去认识巴结楼主才行了,这种人才,必须认识!
-----------------------------------------------------------------------

最近在忙一些公司里的新项目,顺便重新规化和完善该操作系统的下一版本,所以很少上论坛;
很幸会能结识goooogleman这种销售+技术全方面的实干人才,我只是普通的纯技术爱好者而已,
很多地方还需向其它各方面的高手们请教请教...

出0入0汤圆

发表于 2011-12-15 16:30:08 | 显示全部楼层
咱们这种的也只能当灌水的了

出0入0汤圆

发表于 2011-12-20 09:38:37 | 显示全部楼层
回复【55楼】apple_01  
h-jtag烧写还可以,读芯片的信息那真是煎熬,可以说是人间最大的杯具。
-----------------------------------------------------------------------
去掉检测nand芯片的id选项试试

出0入0汤圆

发表于 2011-12-20 09:51:18 | 显示全部楼层
哈哈,好
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 12:47

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表