打印

急问NXP1766USB+TCP,RAM不足问题

[复制链接]
1794|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
六楼的窗户|  楼主 | 2010-4-29 14:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.所用功能:使用NXP1766/1768,采集IO口信息,RTC信息,通过TCP发送并USB HOST保存至U盘

2.所用代码:该模块代码主要由M31700工控平台附送例程中USB_HOST_IN_FS,TCP TEST修改组合完成,例程中头文件全部引入,连同USB枚举和调度任务,TCP初始化,接受信息等共有7个TASK,优先级从4 至10,CODE=63000+,RO=576,RW=368,ZI=35420.

3.分散加载文件:由于ZI量过大,无法进入MAIN(),我编写了如下的分散加载文件,AHB0,AHB1区分别放入15K,12K数据,可以进入 MAIN函数,USB初始化成功,但在USB发送数据几秒后,进入HARD FAULT

4.问题现象
单独运行TCP,USB任务,无故障.
将其中任一任务换为闪灯等简单任务,无故障
TCP,HOST同时运行,复位后HOST闪动,发送数据3-5秒后停止,TCP无法连接
TCP,HOST同时运行,复位后立即连接TCP,可以连接成功,无法接受数据

5.求助
a.个人分析是在HOST与TCP任务切换时引发RAM不足,是否我编写的分散加载文件错误?
b.大家有用1766同时开发HOST与TCP的经验么,是否可以同时实现?
c.使用HOST,TCP,UCOS时还有什么办法可以缩小ZI数据,减轻硬件负担的方法么
d.本人QQ 290706846,欢迎大家直接联系我

多谢了,多谢

相关帖子

沙发
金鱼木鱼| | 2010-4-29 14:50 | 只看该作者
分散加载文件无法整体上传,总说非法访问,我只把我改过的发下吧,ROM和堆栈都用的原来的,0x用**代替了


    SRAM **10000000    **00008000
    {
        .ANY (+RW,+ZI)        
    }
    AHB0 **2007C000  **00004000
    {
        osfile.o(+RW,+ZI)
        dir.o(+RW,+ZI)
        disk.o(+RW,+ZI)
        file.o(+RW,+ZI)
        rwsec.o(+RW,+ZI)
        host.o(+RW,+ZI)   
    }
    AHB1 **20080000    **00004000
    {
        arp.o(+RW,+ZI)
        ethernet.o(+RW,+ZI)
        hardware_8041_int.o(+RW,+ZI)
        icmp.o(+RW,+ZI)
        ip.o(+RW,+ZI)
        tcp.o(+RW,+ZI)
        udp.o(+RW,+ZI)
        zlg_socket.o(+RW,+ZI)
    }

使用特权

评论回复
板凳
北京户口| | 2010-4-29 14:50 | 只看该作者
不建议将以太网的部分加载到高区SRAM中。



   AHB1 **20080000    **00004000
    {
        arp.o(+RW,+ZI)
        ethernet.o(+RW,+ZI)
        hardware_8041_int.o(+RW,+ZI)
        icmp.o(+RW,+ZI)
        ip.o(+RW,+ZI)
        tcp.o(+RW,+ZI)
        udp.o(+RW,+ZI)
        zlg_socket.o(+RW,+ZI)
    }



此外您的堆空间没有定义

使用特权

评论回复
地板
yoyowodeai| | 2010-4-29 14:51 | 只看该作者
现在我已经把以太网的.o放入SRAM区了,但问题依然存在,在任务切换时仍旧进入硬错误,USB和TCP无法同时运行,为什么呢?RAM的问题么?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

102

主题

497

帖子

0

粉丝