ly219 发表于 2011-1-15 22:06:13

弄了一下午升级成0.4.0版本,U盘没整好,外部ram也不能用。

自己在英贝特的板子上学了一段时间的RTT和RTGUI了,一直用的0.3.0版的,跑系统和GUI都挺好的,自己也根据需要试着修改了一些GUI的控件,比如,浏览文件时加了右侧的滚动条,纯指示作用,没有用滚动条控件,还是挺方便的,SD卡和SPI FLASH实现的U盘也挺好用的,就是速度有点慢,SD卡U盘模式下电脑读速度不到400k,写模式40k!!够慢的,用的32MB的SD卡和1G的卡都差不多。SPI FLASH读写比SD卡稍快点,400多k读,60k写,不知道有什么办法提高速度没。

今天下午想升级成0.4.0,把OS换了,文件系统部分换了,U盘部分代码也换了,GUI还没换,现在遇到两个问题:

1、外部RAM不能用了,只要使能外部RAM,编译通过,下载到板子上,RAM自测试都过不了,一到开始循环读内存并校验的时候马上就死机了,死机还死的挺痛快,连jlink都连不上了,还以为flash给写坏了呢,折腾半天,最后通过串口编程,写段完好的代码进去就ok了。最后只能先禁用外部RAM。

2、U盘也很奇怪,把radio里德SD卡驱动代码拷贝过来,把SPI FLASH的驱动读写部分改成radio的(我在板子上焊了一片SST25VF16,跟radio一样),修改了U盘读写的程序文件 mass_mal.c ,别的也没什么影响了吧,但是,从电脑上只能浏览U盘,包括SD盘和SPI的盘都能浏览,但是就是不能读写,一读写就退出U盘模式了。

文件系统应该没有问题,因为字库文件能读取,在LCD上浏览SD卡及SPI FLASH里的文件时,中文的文件名什么的都能正常显示。对了,在屏上浏览文件时
SPI FLASH里的SD文件夹居然显示成文件类型!!

我板子上的实现基本都是参照radio的代码来的。希望能得到大家的指点!!谢谢!!


另外,还有疑问,比如说,当前内存占用10k,我打开一个新的view后内存增加1k,占用11k,但是我注销这个view后不会恢复成10k,比10k要多,我再次打开这个view后还是刚才的11k,这个问题怎么解释,我不是很清楚,麻烦大哥大姐指导指导。

kinglj 发表于 2011-1-15 23:25:13

0.4的驱动程序跟0.3的有点变化

ly219 发表于 2011-1-16 01:27:31

但是我已经把SD卡驱动和SPI FLASH的驱动都更新了,我在LCD上显示SD卡的文件目录是正常的,字库文件也能正常读取并显示汉字,只有在用电脑连接成U盘访问的时候不能正常读写。

hwdpaley 发表于 2011-1-16 21:50:23

还在学习的阶段,问题还在研究

ly219 发表于 2011-1-17 10:49:13

刚才修改了下外部RAM的配置顺序,能用外部RAM了,

原来是
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
    FSMC_SRAM_Init();
    FSMC_SRAM_GPIO_Cfg();

改成
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
    FSMC_SRAM_GPIO_Cfg();
    FSMC_SRAM_Init();

就行了,但是,前述U盘的问题还是不行,望前辈帮忙分析一下。

我用shell的ls命令,还不了解ls命令怎么用,用ls(0)的话,能
如下
finsh>>ls(0)
Directory /:
BAD file: SD
resource            <DIR>
sys_setup.ini       46
b.bmp               924226
      0, 0x00000000

此处显示BAD file: SD,实际上在0.3.0版本的时候在SPI FLASH里是名为SD的文件夹,不知为何此处这样显示。是不是因为这个原因,在LCD上浏览文件目录的时候这个SD显示成文件而不是文件夹呢。



现在的启动输出
SystemInit......
CPU SN: 32FFFFFF3639323554400143

mem test pass!!

\ | /
- RT -   Thread Operating System
/ | \ 0.4.0 build Jan 15 2011
2006 - 2009 Copyright by rt-thread team
found part, begin: 26112, size: 29.678MB
SPI File System initialized!
SD File System initialized!
finsh>>event size: 28
event size: 20
event size: 28
event size: 20
list_mem()
total memory: 131048
used memory : 35540
maximum allocated memory: 37812
      32, 0x00000020

aozima 发表于 2011-1-17 11:03:46

死机还死的挺痛快,连jlink都连不上了
========================
ST的固件库里面FSMC初始化多了一条参数.请同步.不然就是这样个死法

2.
======================
读写改成大扇区了.现在最大支持是4K扇区.

3. BAD file: SD
在屏上浏览文件时
SPI FLASH里的SD文件夹居然显示成文件类型!!
=======================
此问题SVN中已修正.

4.
但是我注销这个view后不会恢复成10k,比10k要多
================================
程序里面就是这样写的.
尝试运行0.4.0,发现rtgui好像有内存泄露
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4426801

5. 我用shell的ls命令,还不了解ls命令怎么用,用ls(0)的话
========================================
ls("/"),具体使用请看ls函数的原函数.使用与C语言完全一样.

ly219 发表于 2011-1-17 11:44:47

回复【5楼】aozima
-----------------------------------------------------------------------

呵呵,终于等到高手百忙中帮忙答复了,先谢谢了!!

1)外部RAM问题现在解决了,ST库我发现那条语句了,改了,刚开始还是不行,后来不知怎么就行了,我上边提到初始化顺序更改了一下, 不知道跟这个有没有关系,也没再改回去验证,现在能用了。

2)关于U盘部分,我把SD和SPI FLASH的驱动都改成现在扇区操作了,mass_mal.c也改了,暂时还是不行,我正在找问题,如果aozima有什么建议的话还望指导。(因为我的板子和咱们的radio硬件不同,所以我没有完全copy文件,只是用文件比较器一点一点看区别改的,不知是否会遗漏重要的地方)

3)我再看看,如果能知道是哪个文件的问题就好了,理由同2)的括号里所述,不能copy过来用,还得自己查找定位。

4)这个问题不是问题,我已经改成最新的了,内存没有泄露,只是对第一次打开view并关闭后内存会有小部分增长不太理解,不过以后再反复打开关闭同一个view后就不会再增长了,我是想知道多出来的那点内存干了什么。

5)这个怪我自己没理解用法,呵呵,忘了加“”了。


再次感谢aozima !!

ly219 发表于 2011-1-17 13:52:28

3)我更新了dfs_file.c和dfs_fs.c文件,浏览文件正常了。


还在被第二个问题困扰,现在是在电脑上能浏览,很小的txt文件能打开,小于1k,内容就几个字母,但是900k的bmp文件打不开。连右键文件想看看属性都不行。
现象是,每次异常后都检测到连接超时,然后rt_kprintf("\r\nCable removed!\r\n\r\n");

注:我在设备上对SPI FLASH进行文件写操作时正常的,是不是能说明驱动是正常的呢。

ly219 发表于 2011-1-17 17:27:17

顶一下,又折腾一天了,没进展!望指导啊。

ffxz 发表于 2011-1-17 17:29:43

回复【7楼】ly219
3)我更新了dfs_file.c和dfs_fs.c文件,浏览文件正常了。
还在被第二个问题困扰,现在是在电脑上能浏览,很小的txt文件能打开,小于1k,内容就几个字母,但是900k的bmp文件打不开。连右键文件想看看属性都不行。
现象是,每次异常后都检测到连接超时,然后rt_kprintf("\r\ncable removed!\r\n\r\n");
注:我在设备上对spi flash进行文件写操作时正常的,是不是能说明驱动是正常的呢。

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

cable removed的功能在0.4.x总移除了吧

ly219 发表于 2011-1-17 19:20:42

回复【9楼】ffxz
-----------------------------------------------------------------------

嗯,我看到是0.4.0中是没有这种功能了,我自己加的打印输出而已,不过这没有什么影响吧?
主要问题还是U盘的问题,还得要慢慢找原因。

ly219 发表于 2011-1-18 16:05:50

终于解决问题了!
由于我自己的代码usb操作端点收发我都改到端点1了,所以我在升级驱动的时候拷过来的代码都改了一遍,但百密一疏啊,遗漏了usb_scsi.c里的写操作部分的一个端点定义,造成能浏览及小文件读,但不能写得情况。
希望大家引以为戒。
谢谢大家的关注和帮助。感觉这套系统包括OS和GUI应用起来还是很方便的,其他组件除了用了文件系统,别的都没用到呢,大家以后有机会可以试试,我觉得用到系统中不是什么问题。
页: [1]
查看完整版本: 弄了一下午升级成0.4.0版本,U盘没整好,外部ram也不能用。