搜索
bottom↓
回复: 207

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

[复制链接]

出0入0汤圆

发表于 2011-7-1 21:34:56 | 显示全部楼层 |阅读模式
经过两天的努力,终于完成了 S3C2440 BSP移植,并实际在 GEC2440 和 MINI2440上运行成功;
应用程序的二进制代码和源码都和 S3C6410 是100%兼容的,
之前在6410上的应用程序,无需重新编译,便可直接在2440上运行,这也实际验证了应用程序与硬件无关性...

操作系统内核 + 2440BSP 工程源码:
点击此处下载 ourdev_653916OOJN14.rar(文件大小:8.27M) (原文件名:S3C2440_System.rar)

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2011-7-1 21:38:19 | 显示全部楼层
不错,下下来看看,楼主,有没有个中文说明啊?
手头有6410的板子,但是不知道如何入门,哪里有详细的教程不?

出0入0汤圆

 楼主| 发表于 2011-7-1 21:41:56 | 显示全部楼层
SDK 和 6410版共用:
这个版本的内核有更新,ADS SDK的头文件 Kernel.h 用BSP目录下的Kernel.h更新一下.

用户移植到其它 2440平台,只要修改一下 LCD 和 Flash参数,重新编译后,
把生成的 Bin文件烧录到 NandFlash 或 下载到 2440 SDRAM 0x30000000 就可以运行该系统;

另外,用户也可以自行在BSP中添加自己的设备驱动...

出0入0汤圆

 楼主| 发表于 2011-7-1 21:43:31 | 显示全部楼层
回复【1楼】flyforyou85
不错,下下来看看,楼主,有没有个中文说明啊?
手头有6410的板子,但是不知道如何入门,哪里有详细的教程不?

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

你是问 应用程序开发说明 还是 系统移植说明 ?

出0入0汤圆

 楼主| 发表于 2011-7-1 21:54:08 | 显示全部楼层
在GEC2440上的运行效果:

硬件配置:
CPU:   S3C2440A   - 400MHZ
RAM:   SDRAM      - 64MB
Flash: K9F1208    - 64MB
LCD:   AT080TN    - 群创 8.0寸 TFT, 800x480


(原文件名:DSC_3576.JPG)


(原文件名:DSC_3581.JPG)


(原文件名:DSC_3583.JPG)


(原文件名:DSC_3584.JPG)


(原文件名:DSC_3585.JPG)


(原文件名:DSC_3586.JPG)


(原文件名:DSC_3587.JPG)


(原文件名:DSC_3588.JPG)


(原文件名:DSC_3590.JPG)


(原文件名:DSC_3591.JPG)

出0入0汤圆

发表于 2011-7-1 22:04:26 | 显示全部楼层
lz,您的SDK说明有吗?找你以前的贴子没有找到。
lz是研究所的吧。。。。。。。国立研究所应该做不到这种程度,难道是个人的????
lz的系统已经独立一家了。。。。。

出0入0汤圆

 楼主| 发表于 2011-7-1 22:07:35 | 显示全部楼层

(原文件名:DSC_3594.JPG)

出0入0汤圆

 楼主| 发表于 2011-7-1 22:09:02 | 显示全部楼层
回复【5楼】hzr0071
lz,您的sdk说明有吗?找你以前的贴子没有找到。
lz是研究所的吧。。。。。。。国立研究所应该做不到这种程度,难道是个人的????
lz的系统已经独立一家了。。。。。
-----------------------------------------------------------------------

SDK可以用这里面的:
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-7-1 22:14:47 | 显示全部楼层
回复【5楼】hzr0071
lz,您的sdk说明有吗?找你以前的贴子没有找到。
lz是研究所的吧。。。。。。。国立研究所应该做不到这种程度,难道是个人的????
lz的系统已经独立一家了。。。。。
-----------------------------------------------------------------------

目前只是 "个人研究" ~~~~~~

出0入0汤圆

 楼主| 发表于 2011-7-1 22:58:34 | 显示全部楼层
在Mini2440上的运行效果 ( 3年前用的Mini2440,4.3寸LCD显示效果很不错 ) :

硬件配置:
CPU:   S3C2440A   - 400MHZ
RAM:   SDRAM      - 64MB
Flash: K9F1208    - 64MB
LCD:   WXCAT-43  - 东华4.3寸 TFT, 480x272


(原文件名:DSC_3598.JPG)


(原文件名:DSC_3603.JPG)


(原文件名:DSC_3613.JPG)


(原文件名:DSC_3615.JPG)


(原文件名:DSC_3616.JPG)


(原文件名:DSC_3618.JPG)


(原文件名:DSC_3621.JPG)


(原文件名:DSC_3624.JPG)


(原文件名:DSC_3625.JPG)


(原文件名:DSC_3627.JPG)

出0入0汤圆

发表于 2011-7-2 00:47:28 | 显示全部楼层
mark~

出0入9汤圆

发表于 2011-7-2 09:06:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-2 09:08:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-2 09:48:46 | 显示全部楼层
要标记下 好东西

出0入0汤圆

发表于 2011-7-2 10:30:19 | 显示全部楼层
ding

出0入0汤圆

 楼主| 发表于 2011-7-5 11:11:57 | 显示全部楼层
后续将公布 基于ARM926EJ-S 的 S3C2416 / S3C2450 BSP 源码...

出0入0汤圆

发表于 2011-7-6 21:04:13 | 显示全部楼层
高手啊

出0入0汤圆

发表于 2011-7-6 23:54:10 | 显示全部楼层
不明白的是楼主的操作系统能介绍一下吗?
为何游戏也能运行在你的操作系统下,也是linux吗?

出0入0汤圆

发表于 2011-7-7 09:11:25 | 显示全部楼层
Mark!

出0入0汤圆

发表于 2011-7-7 09:17:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-7 09:34:35 | 显示全部楼层
楼主的操作系统有个名字么?
就叫多进程操作系统撒?

出0入0汤圆

 楼主| 发表于 2011-7-7 09:44:53 | 显示全部楼层
回复【20楼】jaylondon
楼主的操作系统有个名字么?
就叫多进程操作系统撒?
-----------------------------------------------------------------------

还没确定叫什么名字~~~

出0入0汤圆

 楼主| 发表于 2011-7-7 09:58:07 | 显示全部楼层
回复【17楼】ggg12345
不明白的是楼主的操作系统能介绍一下吗?
为何游戏也能运行在你的操作系统下,也是linux吗?
-----------------------------------------------------------------------

操作系统组成: 多进程/多线程OS内核 + 设备管理器 + GUI + FS
应用程序独立编译,动态加载运行;
在CPU 指令兼容的情况下,应用程序可以跨平台运行.
目前,提供约400多个API供用户使用,其中约80%的API是和 win32API 兼容的;

这些游戏演示是丛windows VC上移植过来的.

出0入0汤圆

 楼主| 发表于 2011-7-7 10:34:15 | 显示全部楼层
"在CPU 指令兼容的情况下,应用程序可以跨平台运行" 的解释说明:

比如: 用户开发了一个应用程序: Test, 编译后生成了可执行文件: Test.app
但这个应用程序要在4个不同的硬件平台上运行,假设这4个硬件平台分别为:

ARM720:  SEP4020      + 16MB SDRAM  + 3.5 TFT,320x240,16bpp
ARM920:  S3C2410      + 64MB SDRAM  + 4.3 TFT,480x272,16bpp
ARM926:  AT91SAM9261  + 128MB SDRAM + 7.0 TFT,800x480,24bpp
ARM1176: S3C6410      + 256MB DDRAM + 8.0 TFT,800x600,24bpp

这4个平台CPU内核分别为ARM720, ARM920, ARM926, ARM1176,
虽然它们的硬件配置和物理空间是各不相同的,但同一份应用程序
Test.app却可以直接运行在这些不同的硬件平台上,并不需要为每个
平台都单独编译一份app可执行文件.

出0入0汤圆

 楼主| 发表于 2011-7-7 17:15:22 | 显示全部楼层
S3C2416 / S3C2450 BSP源码已公布:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4858649&bbs_id=9999

出0入0汤圆

发表于 2011-7-11 09:28:32 | 显示全部楼层
楼主啊 渴望您的联系方式,想拜您为师,就收了徒弟吧!

出0入0汤圆

发表于 2011-8-12 15:45:31 | 显示全部楼层
资源: micro2440 , 800x600 彩屏 (GUI_Gdev.c 中修改) ; Nandflash:K9F1G08 (已经单选 #define K9FG08)
效果: 屏幕下方有4个平均分布的长方形,灰色的,有立体感,屏幕是灰白色的 (颜色相近,拍不出相片),其它没有了,
      点触摸屏,串口有数据出.
到下面的提示出错,请楼主帮忙分析原因.
*******************************************
* RO 80000000H - 8008641CH; Size: 549916
* RW 8008641CH - 8055B7B8H; Size: 5067676
* ZI 8008647CH - 8055B7B8H; Szie: 5067580
* [00001234][00005678][00000000][00000000]
********************************************
atoi=805320608,atoi=805320604,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:  B0 01 00 EA 04 D0 4D E2 01 00 2D E9 E4 05 9F E5
0000_0030:  00 00 90 E5 04 00 8D E5 01 80 BD E8 04 D0 4D E2


******************************
*        System Startup      *
******************************
System Build Date: Jul 01 2011
System Build Time: 14:10:31
System Local Time: 2037-8-5 22:02:06
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 - -7FFF8CC4H
CreateThread -> 82000300H,255
CreateThread -> 82000780H,254
CreateThread -> 82004A00H,16
OS Core Startup
####
OSStatInit
OSIdleCounterMax =2699165
Kernel_API_Entry: 8004A41CH

FFFE_4000:  33 CC 33 CC 33 CC 33 CC 33 CC 33 CC 33 CC 33 CC
FFFE_4010:  04 F0 1F E5 0C 02 01 80 01 04 00 00 00 00 00 00
kernel_api_init
ram_disk_addr_base =80800000H
RegisterDrive -> 0 - 'RAM Disk'
disk->get_sector_size=512
disk->get_sector_size=512
#### -> fmt=0 -  512,512
f_mount -> 0 - 0
Init. Frequency is 200000Hz
In idle
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
CMD55:rSDICSTA=0xc00, rSDIRSP0=0x0
Initialize fail                        ------------------> 出错了
No Card assertion                      ------------------> 必须使用SD卡?
SD Card Init Fail!                     ------------------> 必须使用SD卡?

***********************
****    fs info    ****
***********************
drive:      0
fs_type:    FAT16
c_size:     2
s_size:     512
n_fats:     1
wflag:      0
id:         1
n_rootdir:  512
sects_fat:  34
max_clust:  8159
free_clust: 8157
fat_base:   2
dir_base:   36
data_base:  68
***********************
TotalSize: 8320000 Byte
FreeSize:  8352768 Byte
**********************
RegisterDevice -> 'COM1'
GUI_Init
GWIS_API_Entry: 800490DCH

FFFE_8000:  33 CC 33 CC 33 CC 33 CC 33 CC 33 CC 33 CC 33 CC
FFFE_8010:  33 CC 33 CC 33 CC 33 CC 33 CC 33 CC 33 CC 33 CC
gwis_api_init
LCDInit End(800x600,16bpp)
ScreenWidth=800;ScrHeigh=600;Bpp=16
GUI_Font Init OK!
GUI_Resource_Init!
SetWallpaper -> 'B:\kernel\res\desktop.jpg'
GUI_Timer_Init!
GUI_Window_Init!
RegisterClass -> 'button' - 00000000H
RegisterClass -> 'static' - 00000000H
RegisterClass -> 'edit' - 00000000H
RegisterClass -> 'scrollbar' - 00000000H
RegisterClass -> 'listbox' - 00000000H
RegisterClass -> 'imagebox' - 00000000H
RegisterClass -> 'toolbar' - 00000000H
CreateThread -> 820F0C00H,128
ts_load_config Error                         ------------------> 出错了
CreateThread -> 820F1E80H,200
CreateThread -> 820F6100H,128
CreateThread -> 820F7380H,128
MultiMedia_API_Entry: 8004AA9CH

FFFE_C000:  04 F0 1F E5 34 00 03 80 00 0C 00 00 00 00 00 00
FFFE_C010:  04 F0 1F E5 38 00 03 80 01 0C 00 00 00 00 00 00
multimedia_api_init
CreateThread -> 820FB600H,128
CreateThread -> 820FC880H,129
CreateThread -> 820FDB00H,130
CreateThread -> 820FED80H,131
CreateThread -> 82107000H,132
CreateThread -> 82108280H,133
CreateThread -> 82109500H,134
CreateThread -> 8210A780H,135
CreateThread -> 8210BA00H,136
CreateThread -> 8210CC80H,137
CreateThread -> 8210DF00H,138
DestroyThread! - 820FDB00H
DestroyThread! - 82108280H
DestroyThread! - 82109500H
DestroyThread! - 8210A780H
DestroyThread! - 8210BA00H
DestroyThread! - 8210CC80H
TouchPanel Thread Startup!
Desktop -> WM_ERASEBKGND - 0,0,800,600
GUI_Desktop Start!
Desktop->pMsgQ=820FCC80H
SetTimer -> 820FD080H - 500
DestroyThread! - 820FED80H
SetTimer -> 820FEA80H - 300
DestroyThread! - 820FC880H

**************************
****     Main Menu    ****
**************************
Select Function(0~5):
[0]. USB MassStoeage
[1]. GUI Demo
[2]. TouchScreen Calibrate
[3]. FS Test
[4]. TCB View
[5]. Custom

->:

出0入0汤圆

 楼主| 发表于 2011-8-13 00:24:19 | 显示全部楼层
回复【26楼】apple_01
-----------------------------------------------------------------------

BSP驱动中,"系统文件"目录默认是放在SD卡中,你需要把"系统文件"复制到SD下:
请参考这个帖子"第3楼"
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4758877&bbs_page_no=1&search_mode=4&search_text=liuweiele&bbs_id=9999

出0入0汤圆

发表于 2011-8-15 14:54:33 | 显示全部楼层
系统文件复制到SD (512M Panasonic SD),已建立目录:
  Q:\kernel\res
  Q:\kernel\drivers
  Q:\kernel\fonts
  Q:\kernel\startup

  Q:\ 为SD卡在电脑的盘符
==================================================
运行仍出错:
********************************************
* RO 80000000H - 8008641CH; Size: 549916
* RW 8008641CH - 8055B7B8H; Size: 5067676
* ZI 8008647CH - 8055B7B8H; Szie: 5067580
* [00001234][00005678][00000000][00000000]
********************************************
atoi=805320608,atoi=805320604,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:  B0 01 00 EA 04 D0 4D E2 01 00 2D E9 E4 05 9F E5
0000_0030:  00 00 90 E5 04 00 8D E5 01 80 BD E8 04 D0 4D E2


******************************
*        System Startup      *
******************************
System Build Date: Jul 01 2011
System Build Time: 14:10:31
System Local Time: 2031-8-2 14:45:39
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 - -7FFF8CC4H
CreateThread -> 82000300H,255
CreateThread -> 82000780H,254
CreateThread -> 82004A00H,16
OS Core Startup
####
OSStatInit
OSIdleCounterMax =2699170
Kernel_API_Entry: 8004A41CH

FFFE_4000:  01 8D 33 CC 00 05 33 CC 40 0E 33 CC 60 42 33 CC
FFFE_4010:  04 F0 1F E5 0C 02 01 80 01 04 00 00 00 00 00 00
kernel_api_init
ram_disk_addr_base =80800000H
RegisterDrive -> 0 - 'RAM Disk'
disk->get_sector_size=512
disk->get_sector_size=512
#### -> fmt=0 -  512,512
f_mount -> 0 - 0
Init. Frequency is 200000Hz
In idle
Initialize fail                      --------> 出错
No Card assertion                    --------> 出错
SD Card Init Fail!                   --------> 出错

***********************
****    fs info    ****
***********************
drive:      0
fs_type:    FAT16
c_size:     2
s_size:     512
n_fats:     1
wflag:      0
id:         1
n_rootdir:  512
sects_fat:  34
max_clust:  8159
free_clust: 8157
fat_base:   2
dir_base:   36
data_base:  68
***********************
TotalSize: 8320000 Byte
FreeSize:  8352768 Byte
**********************
RegisterDevice -> 'COM1'
GUI_Init
GWIS_API_Entry: 800490DCH

FFFE_8000:  01 D8 33 CC 08 05 33 CC 40 08 33 CC A1 C0 33 CC
FFFE_8010:  00 EA 33 CC 18 D6 33 CC 32 80 33 CC A1 90 33 CC
gwis_api_init
LCDInit End(800x600,16bpp)
ScreenWidth=800;ScrHeigh=600;Bpp=16
GUI_Font Init OK!
GUI_Resource_Init!
SetWallpaper -> 'B:\kernel\res\desktop.jpg'
GUI_Timer_Init!
GUI_Window_Init!
RegisterClass -> 'button' - 00000000H
RegisterClass -> 'static' - 00000000H
RegisterClass -> 'edit' - 00000000H
RegisterClass -> 'scrollbar' - 00000000H
RegisterClass -> 'listbox' - 00000000H
RegisterClass -> 'imagebox' - 00000000H
RegisterClass -> 'toolbar' - 00000000H
CreateThread -> 820F0C00H,128
ts_load_config Error                          --------> 出错
CreateThread -> 820F1E80H,200
CreateThread -> 820F6100H,128
CreateThread -> 820F7380H,128
MultiMedia_API_Entry: 8004AA9CH

FFFE_C000:  04 F0 1F E5 34 00 03 80 00 0C 00 00 00 00 00 00
FFFE_C010:  04 F0 1F E5 38 00 03 80 01 0C 00 00 00 00 00 00
multimedia_api_init
CreateThread -> 820FB600H,128
CreateThread -> 820FC880H,129
CreateThread -> 820FDB00H,130
CreateThread -> 820FED80H,131
CreateThread -> 82107000H,132
CreateThread -> 82108280H,133
CreateThread -> 82109500H,134
CreateThread -> 8210A780H,135
CreateThread -> 8210BA00H,136
CreateThread -> 8210CC80H,137
CreateThread -> 8210DF00H,138
DestroyThread! - 820FDB00H
DestroyThread! - 82108280H
DestroyThread! - 82109500H
DestroyThread! - 8210A780H
DestroyThread! - 8210BA00H
DestroyThread! - 8210CC80H
TouchPanel Thread Startup!
Desktop -> WM_ERASEBKGND - 0,0,800,600
GUI_Desktop Start!
Desktop->pMsgQ=820FCC80H
SetTimer -> 820FD080H - 500
DestroyThread! - 820FED80H
SetTimer -> 820FEA80H - 300
DestroyThread! - 820FC880H

**************************
****     Main Menu    ****
**************************
Select Function(0~5):
[0]. USB MassStoeage
[1]. GUI Demo
[2]. TouchScreen Calibrate
[3]. FS Test
[4]. TCB View
[5]. Custom

->:
===============================================
是否需要特定的SD卡才行?

出0入0汤圆

 楼主| 发表于 2011-8-15 15:24:31 | 显示全部楼层
回复【28楼】apple_01
-----------------------------------------------------------------------

低试试这个 SD 驱动:
点击此处下载 ourdev_667882LYQ3Z7.rar(文件大小:5K) (原文件名:SDI.rar)

出0入0汤圆

 楼主| 发表于 2011-8-15 15:25:27 | 显示全部楼层
替换原来的 ./BSP/drives/SDI/SDI.c

出0入0汤圆

 楼主| 发表于 2011-8-15 15:27:00 | 显示全部楼层
再适当降低 SDI时钟

出0入0汤圆

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

出0入0汤圆

发表于 2011-8-16 09:56:51 | 显示全部楼层
多谢楼主指点.
不过,那个替换的SDI.C 文件有问题:


新的SDI.C文件编译出错 (原文件名:err1.JPG)

出0入0汤圆

发表于 2011-8-16 10:58:02 | 显示全部楼层
用原来的SDI.C,换一张SD卡(1G)就出来界面了。
好象说三星的SD驱动还分大小容量的,麻烦,不知道是否还挑牌子。
建议搂主把kernel放到flash里,省得到处找SD卡,kernel也就4M多一点点大,放到flash完全无问题。

出0入0汤圆

 楼主| 发表于 2011-8-16 10:58:40 | 显示全部楼层
你用这个代替,注释掉了sd_disk_flush

//NandFlash Disk数据结构
const DEVICE_INTERFACE        sd_disk_dev={
        "SD Card",
        sd_disk_power_up,
        sd_disk_open,
        sd_disk_read,
        sd_disk_write,
        //sd_disk_flush,
        0,
        0,
        sd_disk_io_ctrl,
        sd_disk_suspend,
        sd_disk_resume,
        sd_disk_close,
};

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

你使用的是旧版操作系统和BSP,设备驱动接口不提供DeivceFlush功能,
新版在这里:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4907057&bbs_page_no=1&search_mode=4&search_text=liuweiele&bbs_id=9999

出0入0汤圆

 楼主| 发表于 2011-8-16 11:25:15 | 显示全部楼层
回复【34楼】apple_01
-----------------------------------------------------------------------


kernel是可以放在Flash里的,只要修改BSP就能实现(使用最新版系统和BSP):
实现过程如下:

1. 按实际硬件完成NandFlash的驱动接口
2. 在 BSP.c -> arch_RegisterDrive函数中,调用RegisterDrive函数,
   将NandFlash驱动注_册为 1号 磁盘驱动器,如:RegisterDrive(1,&nand_disk_dev);
3. 完成 USB Massstore驱动接口,使 NandFlash 以"U盘"方式连接电脑,
   这样便可实现丛电脑上直接拷贝文件到NandFlash中.

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

备注:

1. 系统默认路径为: B;\Kernel,对应的1号物理磁盘,
   逻辑盘处物理盘关系对应如下 A:->0,B:->1,C:->2,...Z:->26

2. USB Massstore驱动实现,在这个帖子里有说明:
   http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4907057&bbs_page_no=1&search_mode=4&search_text=liuweiele&bbs_id=9999

出0入0汤圆

发表于 2011-8-16 14:20:39 | 显示全部楼层
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4907057&bbs_page_no=1&search_mode=4&search_text=liuweiele&bbs_id=9999

2440的新版BSP编译错误很多,主要是USB Massstore 那里, 很多被注释的,去掉注释后,仍然有错误,编译过不去。

出0入0汤圆

发表于 2011-8-16 14:36:13 | 显示全部楼层
搂主,提个小建议, *.C 中的 #define xxx 之类的, 最好放到 *.h 中去,修改参数方便。
例如,需要修改LCD的参数,得在GUI_Gdev.c中查得很深才能找到要修改的东西,就是下面的 #define xxxxx:
=======================================================================

static        int        lcd_init(void)
{
        volatile        LCD_REG                *lcd        =PA2VA(LCD_REG_PA_BASE);
        volatile        GPIO_REG        *gpio        =PA2VA(GPIO_REG_PA_BASE);
        volatile        CLKPWR_REG        *clk        =PA2VA(CLKPWR_REG_PA_BASE);
        U16 lcd_horizon_value,lcd_line_value;
       
        //4.3 TFT
//        #define MVAL                (13)        //Def=13
        #define MVAL_USED         (0)                //0=each frame   1=rate by MVAL

        #define        INVVCLK                (0)
        #define        INVVLINE        (0)
        #define        INVVFRAME        (0)
        #define        INVVD                (1)
        #define INVVDEN                (0)                //0=normal       1=inverted
        #define        INVPWREN        (0)
        #define        INVLEND                (0)

#if        LCD_BPP==16
        #define BSWP                (0)                //Byte swap control
        #define HWSWP                (1)                //Half word swap control
#endif

#if        LCD_BPP==24
        #define BSWP                (0)                //Byte swap control
        #define HWSWP                (0)                //Half word swap control
#endif

        #define M5D(n) ((n) & 0x1fffff)        // To get lower 21bits

        #define HFPD (10)
        #define HSPW (10)
        #define HBPD (10)

        #define VFPD (20)
        #define VSPW (20)
        #define VBPD (20)

        #define CLKVAL_TFT        (5)         //7

出0入0汤圆

 楼主| 发表于 2011-8-16 14:36:14 | 显示全部楼层
回复【37楼】apple_01
-----------------------------------------------------------------------

截个图来看看.

出0入0汤圆

发表于 2011-8-16 14:40:35 | 显示全部楼层

举手就是出错 (原文件名:err_2.JPG)

出0入0汤圆

发表于 2011-8-16 14:45:20 | 显示全部楼层
ADS 软件真够呛的,不停打开新窗口,同类型的窗口竟然不停创建,被Keil 代替也是有理由的,
楼主,搞 keil MDK 版本的吧,我想休息一下点鼠标的手。

出0入0汤圆

 楼主| 发表于 2011-8-16 14:46:13 | 显示全部楼层
回复【38楼】apple_01
-----------------------------------------------------------------------

对于那些不需要被外部函数调用的"本地宏",我一般是直接在C文件中定义...

出0入0汤圆

发表于 2011-8-16 14:52:23 | 显示全部楼层
宏定义放在头文件中,查找和管理方便。
比如,现在要升级BSP,宏定义中的参数又得在C文件中继续深入查找、修改,升级越多,重复工作做得越多,
搞不好,C文件都被破坏了。

出0入0汤圆

 楼主| 发表于 2011-8-16 14:53:40 | 显示全部楼层
回复【41楼】apple_01
ads 软件真够呛的,不停打开新窗口,同类型的窗口竟然不停创建,被keil 代替也是有理由的,
楼主,搞 keil mdk 版本的吧,我想休息一下点鼠标的手。
-----------------------------------------------------------------------

原本是有 Keil MDK版的,后来发现 MDK由.scf生成的 RO,RW,ZI有"bug",所以就放弃了...
ADS其实也有很不已错,编译速度至少比MDK快3倍以上,这对"中大型"软件开发,是很有优势的.

出0入0汤圆

 楼主| 发表于 2011-8-16 15:05:11 | 显示全部楼层
回复【40楼】apple_01
-----------------------------------------------------------------------
你发的图片看不清楚, 我再发一个完整的工程,你修改一下LCD驱动就可以了:

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

出0入0汤圆

发表于 2011-8-16 15:39:53 | 显示全部楼层
利用下面2个文件,在keil中编译,下载到RAM运行正常,在norflash中也正常:
点击此处下载 ourdev_668234GYKH4H.pdf(文件大小:3.36M) (原文件名:RealView MDK 2440快速开发快速入门.pdf)
点击此处下载 ourdev_668235KKNVNF.rar(文件大小:192K) (原文件名:RealView MDK 2440快速开发入门工程文件.rar)

出0入0汤圆

发表于 2011-8-16 15:54:25 | 显示全部楼层

换了刚下的,还是出错 (原文件名:err_2.JPG)

出0入0汤圆

 楼主| 发表于 2011-8-16 16:48:09 | 显示全部楼层
回复【47楼】apple_01
-----------------------------------------------------------------------

你找一下 USB_DrvLib.h 中有没有这几个宏定义

出0入0汤圆

发表于 2011-8-16 16:50:26 | 显示全部楼层
老大,不用忙了,不开源的东西,没人敢用在项目上,要研究,开源的太多了

出0入0汤圆

 楼主| 发表于 2011-8-16 16:52:57 | 显示全部楼层
ADS编译方法:


(原文件名:001.JPG)


(原文件名:002.JPG)


(原文件名:003.JPG)

出0入0汤圆

 楼主| 发表于 2011-8-16 17:08:50 | 显示全部楼层
回复【49楼】tangnyzl
老大,不用忙了,不开源的东西,没人敢用在项目上,要研究,开源的太多了
-----------------------------------------------------------------------

出0入0汤圆

发表于 2011-8-16 17:23:08 | 显示全部楼层
能出来界面了。
不过,对比旧版,还是有问题。
旧版的屏幕地图是16色的彩色显示,新版的没有16色了,原来鲜艳的绿色,现在是紫色了,好象是8色? 还是单色?
只能在RAM里运行。 不知道怎么设置ADS达到下载nandflash目的。

to: 【49楼】 tangnyzl
楼主很给力了,应该给予支持。

出0入0汤圆

 楼主| 发表于 2011-8-16 17:31:21 | 显示全部楼层
回复【52楼】apple_01
能出来界面了。
不过,对比旧版,还是有问题。
旧版的屏幕地图是16色的彩色显示,新版的没有16色了,原来鲜艳的绿色,现在是紫色了,好象是8色? 还是单色?
to: 【49楼】 tangnyzl  
楼主很给力了,应该给予支持。
-----------------------------------------------------------------------

在 GUI_GDev -> lcd_init 函数中,

将   #define INVVD  (1)    改为     #define INVVD  (0)

出0入0汤圆

 楼主| 发表于 2011-8-16 17:33:34 | 显示全部楼层
回复【52楼】apple_01
-----------------------------------------------------------------------

如果要把代码烧录到 NandFlash, 推荐使用 H-JTAG.

出0入0汤圆

发表于 2011-8-17 09:40:01 | 显示全部楼层
H-JTAG烧写还可以,读芯片的信息那真是煎熬,可以说是人间最大的杯具。

出0入0汤圆

发表于 2011-8-17 13:56:05 | 显示全部楼层
BSP.C 修改如下:
void        arch_RegisterDrive(void)
{
        RegisterDrive(0,(void*)ram_disk_entry());       
        RegisterDrive(1,(void*)sd_disk_entry());      
       
        RegisterDrive(2,(void*)nand_disk_entry());            
       
        USB_MassStorage();                             
               
}

结果如下:

********************************************
* RO 80000000H - 80089A34H; Size: 563764
* RW 80089A34H - 806554E8H; Size: 6077108
* ZI 80089A98H - 806554E8H; Szie: 6077008
* [00001234][00005678][00000000][00000000]
********************************************
atoi=805323764,atoi=805323760,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:  B4 01 00 EA 04 D0 4D E2 01 00 2D E9 F4 05 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: 2031-8-4 13:52:01
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 - -7FFF800CH
CreateThread -> 82000300H,255
CreateThread -> 82000780H,254
CreateThread -> 82004A00H,16
OS Core Startup
####
OSStatInit
OSIdleCounterMax =2699112
Kernel_API_Entry: 8004D8D8H

FFFE_4000:  33 CC 05 CC 31 1C 33 EC 23 84 33 4E 23 CC 31 D8
FFFE_4010:  04 F0 1F E5 EC 22 01 80 01 04 00 00 00 00 00 00
kernel_api_init
ram_disk_addr_base =80800000H
RegisterDrive -> 0 - 'RAM Disk'
disk->get_sector_size=512
disk->get_sector_size=512
ram_disk_rd -> 00000000H - 1
#### -> fmt=0 -  512,512
f_mount -> 0 - 0
ram_disk_rd -> 00000001H - 1
ram_disk_rd -> 00000002H - 1
ram_disk_rd -> 00000003H - 1
ram_disk_rd -> 00000004H - 1
ram_disk_rd -> 00000005H - 1
ram_disk_rd -> 00000006H - 1
ram_disk_rd -> 00000007H - 1
ram_disk_rd -> 00000008H - 1
ram_disk_rd -> 00000009H - 1
ram_disk_rd -> 0000000AH - 1
ram_disk_rd -> 0000000BH - 1
ram_disk_rd -> 0000000CH - 1
ram_disk_rd -> 0000000DH - 1
ram_disk_rd -> 0000000EH - 1
ram_disk_rd -> 0000000FH - 1
ram_disk_rd -> 00000010H - 1
ram_disk_rd -> 00000011H - 1
ram_disk_rd -> 00000012H - 1
ram_disk_rd -> 00000013H - 1
ram_disk_rd -> 00000014H - 1
ram_disk_rd -> 00000015H - 1
ram_disk_rd -> 00000016H - 1
ram_disk_rd -> 00000017H - 1
ram_disk_rd -> 00000018H - 1
ram_disk_rd -> 00000019H - 1
ram_disk_rd -> 0000001AH - 1
ram_disk_rd -> 0000001BH - 1
ram_disk_rd -> 0000001CH - 1
ram_disk_rd -> 0000001DH - 1
ram_disk_rd -> 0000001EH - 1
ram_disk_rd -> 0000001FH - 1
ram_disk_rd -> 00000020H - 1
Init. Frequency is 200000Hz
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
=============================================
停在这里,再也不干活了!


如果BSP.C 修改如下:
void        arch_RegisterDrive(void)
{
        RegisterDrive(0,(void*)ram_disk_entry());       
        RegisterDrive(1,(void*)sd_disk_entry());      
       
//        RegisterDrive(2,(void*)nand_disk_entry());            
       
//        USB_MassStorage();                             
               
}
则可以进入显示界面。

出0入0汤圆

发表于 2011-8-17 14:17:57 | 显示全部楼层
回复【49楼】tangnyzl  
老大,不用忙了,不开源的东西,没人敢用在项目上,要研究,开源的太多了
-----------------------------------------------------------------------


兄弟,我相信你也不可能把宝压在一个没有源码的系统上,特别是嵌入式系统,当然,大公司的除外,个人意见,不要谩骂

出0入0汤圆

 楼主| 发表于 2011-8-17 14:40:02 | 显示全部楼层
回复【56楼】apple_01
-----------------------------------------------------------------------

不要在 arch_RegisterDrive 中调用 USB_MassStorage();   

这个是我在调试BSP驱动时遗留下来的,忘记删除了...

出0入0汤圆

发表于 2011-8-17 15:39:01 | 显示全部楼层
1、 注释了 USB_MassStorage(); 结果还是一样,停在上面说的地方,不动了。
2、 还是回到没有使用nand_flash的程序,界面出来后,点 “运行”,按钮陷下去了,但没有任何东西出来(在SD卡的APP文件夹有hello world.app),
    串口输出坐标信息。


NND,ADS真难用,难怪被ARM放弃了。还是Keil舒服,可以在IDE里使用H-JTAG进行调试。

出0入0汤圆

 楼主| 发表于 2011-8-17 16:52:54 | 显示全部楼层
回复【59楼】apple_01
-----------------------------------------------------------------------
点"运行"后,弹出的列表中有没有显示应用程序清单 ?

新版操作系统的"系统调用"有变动,有些旧的应用程序可能不能运行,你需要下载最新的SDK,把原来的应用程序重新编译一下,就能运行了.

出0入0汤圆

发表于 2011-8-17 17:28:47 | 显示全部楼层
使用了最新的SDK编译的。

点"运行"后,按钮陷下去,但没有弹出列表,而且就那么一直陷着。

出0入0汤圆

 楼主| 发表于 2011-8-17 17:44:11 | 显示全部楼层
回复【61楼】apple_01
-----------------------------------------------------------------------

把SD目录和显示界面发来看看

出0入0汤圆

 楼主| 发表于 2011-8-17 17:46:16 | 显示全部楼层
在 S3C2450 上 NandFlash / SD卡 混合使用的例子:


(原文件名:P8172208.JPG)


(原文件名:005.jpg)


(原文件名:006.jpg)

出0入0汤圆

发表于 2011-8-17 17:58:06 | 显示全部楼层

SD卡 (原文件名:err_3.JPG)


显示界面 (原文件名:err_4.JPG)

出0入0汤圆

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

SD卡 (原文件名:err_5.JPG)

出0入0汤圆

发表于 2011-8-17 18:01:52 | 显示全部楼层

SD卡 (原文件名:err_6.JPG)

出0入0汤圆

发表于 2011-8-17 18:03:28 | 显示全部楼层
另外 micro2440 的 nand flash 为 K9F1G08

出0入0汤圆

 楼主| 发表于 2011-8-17 18:04:54 | 显示全部楼层
回复【65楼】apple_01
-----------------------------------------------------------------------

点"运行"后,程序列表中有没有 HelloWorld.app ?

出0入0汤圆

发表于 2011-8-17 20:05:08 | 显示全部楼层
Mark!

出0入0汤圆

 楼主| 发表于 2011-8-17 20:55:17 | 显示全部楼层
回复【67楼】apple_01
另外 micro2440 的 nand flash 为 k9f1g08
-----------------------------------------------------------------------

我的板子上的NandFlash是 K9F1208U, 你要按你实际的硬件来编写NandFlash驱动;
或者,你可以暂时屏蔽掉NandFlash(不要注_册NandFlash驱动),先用SD卡.

出0入0汤圆

发表于 2011-8-18 00:56:23 | 显示全部楼层
前面的现象是在以下条件出现的:
1、nandFlash.C那里已经改了define (只改动了1处地方),否则是无法出现显示界面的 (是否这样?)
2、已经屏蔽NandFlash,否则就不会出现显示的界面了 (这里应该有问题)
3、肯定是使用SD卡,因为那个背景图是在SD卡里的
=========================================================================
点"运行"后,没有“程序列表”的出现,当然也没有 HelloWorld.app ;

刚初始化完毕的界面 和 点"运行"后的界面唯一的区别是: “运行”按钮陷下去了。

出0入0汤圆

 楼主| 发表于 2011-8-18 01:17:16 | 显示全部楼层
回复【71楼】apple_01
-----------------------------------------------------------------------

这个2440 BSP是丛 2450 BSP 的基础上修改过来的,NandFlash驱动部分还没有改过来,
主要是NandFlash控制器初始化代码那个函数,你要按 S3C2440 NFC 来修改一下.

出0入0汤圆

发表于 2011-8-18 01:28:40 | 显示全部楼层
NandFlash控制器初始化代码那个函数,如果有问题,能不能出来初始化完毕的界面?

出0入0汤圆

 楼主| 发表于 2011-8-18 01:28:44 | 显示全部楼层
回复【71楼】apple_01
-----------------------------------------------------------------------

屏蔽NandFlash后,点"运行"后,也没有出现“程序列表”?

你把丛 系统上电启动 到点 "运行" 时串口输出的信息发来看看.

出0入0汤圆

 楼主| 发表于 2011-8-18 01:40:59 | 显示全部楼层
回复【73楼】apple_01
-----------------------------------------------------------------------

如果你注_册了NandFlash驱动,可能会造成无法启动,因为那个是 2450的NandFlash驱动...
是不能直接用在2440上的,会导致NandFlash控制器无法正常工作,例如,在NandFlash读写
过程中,会一直停在 NF_Wait 循环中.

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

点击"运行"时,操作系统会自动扫描已注_册的所有磁盘上的 .app 文件,并显示到
"程序列表"上.

如果已注_册的磁盘驱动不能正常工作,而磁盘驱动程序中又没有作错误处理,将有可能
导致系统无法正常运行.

出0入0汤圆

发表于 2011-8-18 09:18:47 | 显示全部楼层
过程信息如下:
********************************************
* RO 80000000H - 80088E50H; Size: 560720
* RW 80088E50H - 80548ABCH; Size: 4979820
* ZI 80088EB4H - 80548ABCH; Szie: 4979720
* [00001234][00005678][00000000][00000000]
********************************************
atoi=805320676,atoi=805320672,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:  B4 01 00 EA 04 D0 4D E2 01 00 2D E9 F4 05 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: 2031-8-5 09:14:15
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 - -7FFF8BACH
CreateThread -> 82000300H,255
CreateThread -> 82000780H,254
CreateThread -> 82004A00H,16
OS Core Startup
####
OSStatInit
OSIdleCounterMax =2699094
Kernel_API_Entry: 8004CD38H

FFFE_4000:  33 C4 05 44 B1 1C 32 EC 23 84 33 4F 23 CC 21 98
FFFE_4010:  04 F0 1F E5 4C 17 01 80 01 04 00 00 00 00 00 00
kernel_api_init
ram_disk_addr_base =80800000H
RegisterDrive -> 0 - 'RAM Disk'
disk->get_sector_size=512
disk->get_sector_size=512
ram_disk_rd -> 00000000H - 1
#### -> fmt=0 -  512,512
f_mount -> 0 - 0
ram_disk_rd -> 00000001H - 1
ram_disk_rd -> 00000002H - 1
ram_disk_rd -> 00000003H - 1
ram_disk_rd -> 00000004H - 1
ram_disk_rd -> 00000005H - 1
ram_disk_rd -> 00000006H - 1
ram_disk_rd -> 00000007H - 1
ram_disk_rd -> 00000008H - 1
ram_disk_rd -> 00000009H - 1
ram_disk_rd -> 0000000AH - 1
ram_disk_rd -> 0000000BH - 1
ram_disk_rd -> 0000000CH - 1
ram_disk_rd -> 0000000DH - 1
ram_disk_rd -> 0000000EH - 1
ram_disk_rd -> 0000000FH - 1
ram_disk_rd -> 00000010H - 1
ram_disk_rd -> 00000011H - 1
ram_disk_rd -> 00000012H - 1
ram_disk_rd -> 00000013H - 1
ram_disk_rd -> 00000014H - 1
ram_disk_rd -> 00000015H - 1
ram_disk_rd -> 00000016H - 1
ram_disk_rd -> 00000017H - 1
ram_disk_rd -> 00000018H - 1
ram_disk_rd -> 00000019H - 1
ram_disk_rd -> 0000001AH - 1
ram_disk_rd -> 0000001BH - 1
ram_disk_rd -> 0000001CH - 1
ram_disk_rd -> 0000001DH - 1
ram_disk_rd -> 0000001EH - 1
ram_disk_rd -> 0000001FH - 1
ram_disk_rd -> 00000020H - 1
Init. Frequency is 200000Hz
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

***********************
****    fs info    ****
***********************
drive:      0
fs_type:    FAT16
c_size:     2
s_size:     512
n_fats:     1
wflag:      0
id:         1
n_rootdir:  512
sects_fat:  33
n_fatent:   8160
free_clust: 8158
fat_base:   1
dir_base:   34
data_base:  66
***********************
TotalSize: 8322048 Byte
FreeSize:  8353792 Byte
**********************

***********************
****    fs info    ****
***********************
drive:      1
fs_type:    FAT16
c_size:     32
s_size:     512
n_fats:     2
wflag:      0
id:         2
n_rootdir:  512
sects_fat:  127
n_fatent:   30226
free_clust: 26245
fat_base:   226
dir_base:   480
data_base:  512
***********************
TotalSize: 494960640 Byte
FreeSize:  429998080 Byte
**********************
RegisterDevice -> 'COM1'
ALCO_Dev_PowerUp
RegisterDevice -> 'ALCO'
RegisterDevice -> 'COIN_SELECTOR'
GUI_Init
GWIS_API_Entry: 8004B9F8H

FFFE_8000:  33 CC 77 96 B3 9E 13 EC 23 85 52 4D 11 DC 20 0D
FFFE_8010:  31 6C 3B F7 03 CC B0 DE A0 4C 83 8E 92 C0 A1 96
gwis_api_init
LCDInit End(800x600,16bpp)
ScreenWidth=800;ScrHeigh=600;Bpp=16
GUI_Font Init OK!
GUI_Resource_Init!
SetWallpaper -> 'B:\kernel\res\desktop.jpg'
GUI_Timer_Init!
GUI_Window_Init!
RegisterClass -> 'button' - 00000000H
RegisterClass -> 'static' - 00000000H
RegisterClass -> 'edit' - 00000000H
RegisterClass -> 'scrollbar' - 00000000H
RegisterClass -> 'listbox' - 00000000H
RegisterClass -> 'imagebox' - 00000000H
RegisterClass -> 'toolbar' - 00000000H
CreateThread -> 820F0F00H,128

0000_0000:  8D 3F 82 0C 57 09 9D 03 54 09 A7 03 3E 06 96 0C
0000_0010:  48 06 00 00 00 00 00 00 80 80 00 00 00 00 01 00
TouchScreen XY Ref=RightDown.
TS_LUAddata =3202, 2391
TS_RUAddata =925, 2388
TS_RDAddata =935, 1598
TS_LDAddata =3222, 1608
TS_XYSwap   =0
ts_org  =2
CreateThread -> 820F2180H,200
CreateThread -> 820F6400H,128
CreateThread -> 820F7680H,128
MultiMedia_API_Entry: 8004D3C8H

FFFE_C000:  04 F0 1F E5 50 29 03 80 00 0C 00 00 00 00 00 00
FFFE_C010:  04 F0 1F E5 54 29 03 80 01 0C 00 00 00 00 00 00
multimedia_api_init
CreateThread -> 820FB900H,128
CreateThread -> 820FCB80H,129
CreateThread -> 820FDE00H,130

出0入0汤圆

发表于 2011-8-18 09:19:33 | 显示全部楼层
续:

CreateThread -> 820FF080H,131
CreateThread -> 82107300H,2
CreateThread -> 82108580H,133
CreateThread -> 82109800H,134
CreateThread -> 8210AA80H,135
CreateThread -> 8210BD00H,136
CreateThread -> 8210CF80H,137
CreateThread -> 8210E200H,138
DestroyThread! - 820FDE00H
DestroyThread! - 82108580H
DestroyThread! - 82109800H
DestroyThread! - 8210AA80H
DestroyThread! - 8210BD00H
DestroyThread! - 8210CF80H
TouchPanel Thread Startup!
Desktop -> WM_ERASEBKGND - 0,0,800,600
GUI_Desktop Start!
Desktop->pMsgQ=820FCF80H
SetTimer -> 820FD380H - 500
DestroyThread! - 820FF080H
SetTimer -> 820FEB00H - 300
DestroyThread! - 820FCB80H

**************************
****     Main Menu    ****
**************************
Select Function(0~5):
[0]. USB MassStoeage
[1]. GUI Demo
[2]. TouchScreen Calibrate
[3]. FS Test
[4]. TCB View
[5]. Custom

->:ts_down:917,1214
Desktop -> WM_LBUTTONDOWN - 917,1214
# lbtn_up - 'Desktop' - 917,1214                 ----> 这里按下"运行", 但界面没有任何东西出来
Desktop -> WM_LBUTTONUP - 917,1214

出0入0汤圆

 楼主| 发表于 2011-8-18 09:55:24 | 显示全部楼层
回复【77楼】apple_01
-----------------------------------------------------------------------

->:ts_down:917,1214
Desktop -> WM_LBUTTONDOWN - 917,1214
# lbtn_up - 'Desktop' - 917,1214                 ----> 这里按下"运行", 但界面没有任何东西出来
Desktop -> WM_LBUTTONUP - 917,1214

????????????????

丛这些坐标来看,你点击"运行"按钮,而坐标却落在桌面(Desktop)上,这是因为你没有校正触摸屏,所以根本没有点到"运行"按钮上;
不同尺寸/分辨率的LCD的触摸屏,需要重新校正一次,才能正常使用.

校正触摸屏方法如下:
上电开机时,一直长按触摸屏,只到出现"触摸屏校正"界面...

出0入0汤圆

 楼主| 发表于 2011-8-18 10:24:48 | 显示全部楼层
正常点击"运行"按钮时,输出的调试信息应该类似如下:

ts_down:41,307                 ->  按下触摸屏时,在屏幕上的位置,这个坐标是落在"运行"按钮在屏幕上的矩形范围内,
                                   不同尺寸的LCD/TS,这个坐标会不同
# lbtn_up - '运行' - 38,10     ->  触摸屏按下,抬起时的位置在"运行"按钮上,客户坐标为: 38,10

CreateThread -> 830A7800H,200  ->  动态创建一个线程,这个线程中运行了"程序列表"窗口;于是,桌面上出现"程序列表"界面...

出0入0汤圆

发表于 2011-8-18 10:46:35 | 显示全部楼层
按照楼主的方法,"程序列表"出来了。
================================
问题:hello world 工程无法make 成功。
make 的错误,以及ADS里的设置:

(原文件名:err_7.JPG)


(原文件名:err_8.JPG)


(原文件名:err_9.JPG)

============

hello world 的参考:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4760379&bbs_page_no=1&search_mode=3&search_text=liuweiele&bbs_id=1032
新版SDK:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4907057&bbs_page_no=1&search_mode=4&search_text=liuweiele&bbs_id=9999

========================
另外,用 友善 的bootloader +DNW ,只能将操作系统放在RAM里,无法放到nandflash里,
DNW的download address 分别设置为: 0x30000000 ; 0x80000000; 0x0 都只能下到RAM,一断电,系统就没有了

出0入0汤圆

 楼主| 发表于 2011-8-18 11:01:35 | 显示全部楼层
回复【80楼】apple_01
-----------------------------------------------------------------------

你更新到新版的SDK? 如果没有,更新到最新版SDK:

点击此处下载 ourdev_668723QHVA48.rar(文件大小:37K) (原文件名:SDK.rar)

另外,新版的应用程序中,已经不需sdkInit.c这个文件,而改用__App_Main.cpp ...
这里是新版的应用程序模板,所有东西都已经设置好了,可以直接使用:

点击此处下载 ourdev_668724S9O7W4.rar(文件大小:171K) (原文件名:AppTemplet.rar)

出0入0汤圆

发表于 2011-8-18 11:05:01 | 显示全部楼层
建议楼主建立版本号,不然,真不知道哪个是最新的。

出0入0汤圆

发表于 2011-8-18 11:35:42 | 显示全部楼层
好了,hello world 出来了!

楼主创意很好! 做到这一步,应该是超出简单的“操作系统”,直接提供了 “操作系统平台”!
继续发展下去,可以和wince媲美了。

出0入0汤圆

发表于 2011-8-18 12:09:52 | 显示全部楼层
楼主,InfoNES 的源码是不是也要重新修改哪里?
我把源码修改后,complie 通过了,make 就出错了:


(原文件名:err_10.JPG)

出0入0汤圆

 楼主| 发表于 2011-8-18 12:37:33 | 显示全部楼层
回复【84楼】apple_01
-----------------------------------------------------------------------
为了尽可能接近 WINCE API,新版系统取消了GetTicksPerSecond 这个API,
使 GetTickCount 这个 API 完全和 WIN32的 API 兼容.

你用这个最新的InfoNES.
点击此处下载 ourdev_668776N72AN8.rar(文件大小:324K) (原文件名:InfoNES.rar)

出0入0汤圆

发表于 2011-8-18 13:14:20 | 显示全部楼层

出0入0汤圆

 楼主| 发表于 2011-8-18 14:14:35 | 显示全部楼层
回复【80楼】apple_01
-----------------------------------------------------------------------

========================
另外,用 友善 的bootloader +DNW ,只能将操作系统放在RAM里,无法放到nandflash里,
DNW的download address 分别设置为: 0x30000000 ; 0x80000000; 0x0 都只能下到RAM,一断电,系统就没有了


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

如果你的NandFlash是 K9F1208U,你可以直接把 操作系统映像文件 烧录到K9F1208U 的起始地址处,
并S3C2440设置成 NandFlash 启动方式,上电后便可自动启动该系统.

如果是其它型号的Flash,你可以参考几个方法实现:

1. 按实际的NandFlash型号,修改s3c2440_init.s中的NandFlash启动代码.
2. 使用第三方boot程序,boot程序只要把 操作系统映像 加载到 0x30000000 处运行便可.
3. 修改s3c2440_init.s,操作系统映像烧录到NorFlash,使用NorFlash方式启动.

出0入0汤圆

发表于 2011-8-18 14:40:42 | 显示全部楼层
楼主,下面的附件是将LCD参数单独提取到一个头文件里,修改参数方便点。
在以后的系统升级,也采用这种方式最好。
LCD头文件,设置相关参数ourdev_668808CCMKK1.zip(文件大小:1K) (原文件名:LCD.zip)
LCD相关函数ourdev_668809N4RNE8.zip(文件大小:7K) (原文件名:GUI_GDev.zip)

出0入0汤圆

 楼主| 发表于 2011-8-18 14:52:52 | 显示全部楼层
回复【82楼】apple_01
建议楼主建立版本号,不然,真不知道哪个是最新的。
-----------------------------------------------------------------------

是的,目前公布的版本还只是小试牛刀,有些东西还不够规范,甚至连系统的正式命名也没有,
这些东西在后续版本中会逐步"正规化".

出0入0汤圆

 楼主| 发表于 2011-8-18 15:23:58 | 显示全部楼层
再上传一个 "数码相册" 的工程源码,支持 jpg,bmp 格式图片, 以及 14种 随机动画特效.

在系统 B盘 根目录下,建立一个 Image 文件夹,把 jpg,bmp图片 复制 到 该文件夹 中就可以了,可以 支持多级目录

为节省内存,源码中限制了 图片分辨率 不要高于1600x1200,用户也可以 解除这个限制.

点击此处下载 ourdev_668812JTU4P3.rar(文件大小:14K) (原文件名:ImageView.rar)


(原文件名:未命名2.jpg)


(原文件名:未命名3.jpg)


(原文件名:005.JPG)

出0入0汤圆

发表于 2011-8-18 15:31:17 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-18 16:19:19 | 显示全部楼层
楼主太给力了!!!

出0入0汤圆

 楼主| 发表于 2011-8-18 16:31:33 | 显示全部楼层
回复【92楼】apple_01
楼主太给力了!!!
-----------------------------------------------------------------------

InfoNES 可以运行了? 其实你可以再加上键盘驱动,这样就能实际操作游戏运行了.
不知在800x600分辨率的LCD上,S3C2440运行InfoNES全屏帧速可以达到多少?

出0入0汤圆

发表于 2011-8-18 17:23:49 | 显示全部楼层
回复【93楼】liuweiele  Liuwei
-----------------------------------------------------------------------

能运行,不过是出来一个框,只有 "增加 Form" 有窗口出来,其它的按钮没有动静,
显示: Fxs=23 xxx

感觉触模屏那里响应比较慢。
=====================================
数码像框运行得非常好!
=====================================
另外, S3C2440_init.s 能用 友善的 2440_init.s 整个替代吗?

出0入0汤圆

发表于 2011-8-18 17:29:40 | 显示全部楼层
这个也太强了吧。。。。

出0入0汤圆

 楼主| 发表于 2011-8-18 17:58:50 | 显示全部楼层
回复【94楼】apple_01
-----------------------------------------------------------------------

把InfoNES界面发来看看.

不能直接用友善的 2440_init.s 整个替代,你只要把NandFlash启动部分复制过来就可以了.

出0入0汤圆

 楼主| 发表于 2011-8-18 18:05:09 | 显示全部楼层
回复【96楼】liuweiele Liuwei
-----------------------------------------------------------------------

你要在InfoNES.app同一级目录下,建一个名为:"ROM" 的文件夹,把NES文件放在这个目录里.
这样,你要点击"加载ROM"按钮时,才会显示出NES ROM文件.


目录可以是这样:

InfoNES
  |
  --- InfoNES.app
  |
  --- ROM
       |
       --- *.NES

出0入0汤圆

发表于 2011-8-18 18:12:52 | 显示全部楼层
知道怎么回事了:要建立下级目录 ROM。
已经运行了,全屏的时候,帧速:最大 16帧/秒

把NandFlash启动部分直接复制过来也不行,还有不知道哪里的相关设置。

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

本版积分规则

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

GMT+8, 2024-4-25 19:28

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

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