搜索
bottom↓
回复: 5

STM32F103CB能跑RTT+LWIP吗

[复制链接]

出0入0汤圆

发表于 2010-11-24 14:05:26 | 显示全部楼层 |阅读模式
本来在STM32F103ET6上是正常的。但转到STM32F103C8就运行不起来。好像在初始化内存时异常。
void rt_system_heap_init(void* begin_addr, void* end_addr)
{
        struct heap_mem *mem;
        rt_uint32_t begin_align = RT_ALIGN((rt_uint32_t)begin_addr, RT_ALIGN_SIZE);
        rt_uint32_t end_align = RT_ALIGN_DOWN((rt_uint32_t)end_addr, RT_ALIGN_SIZE);

        /* alignment addr */
        if((end_align > (2 * SIZEOF_STRUCT_MEM) ) &&
                ((end_align - 2 * SIZEOF_STRUCT_MEM) >= begin_align ))
   {
            /* calculate the aligned memory size */
                mem_size_aligned = end_align - begin_align - 2 * SIZEOF_STRUCT_MEM;
        }
        else
    {
                rt_kprintf("mem init, error begin address 0x%x, and end address 0x%x\n", (rt_uint32_t)begin_addr, (rt_uint32_t)end_addr);
                return;
        }

        /* point to begin address of heap */
        heap_ptr = (rt_uint8_t *)begin_align;

#ifdef RT_MEM_DEBUG
        rt_kprintf("mem init, heap begin address 0x%x, size %d\n", (rt_uint32_t)heap_ptr, mem_size_aligned);
#endif

        /* initialize the start of the heap */
        mem = (struct heap_mem *)heap_ptr;
        mem->magic= HEAP_MAGIC;
        mem->next = mem_size_aligned + SIZEOF_STRUCT_MEM;
        mem->prev = 0;
        mem->used = 0;

        /* initialize the end of the heap */
        heap_end = (struct heap_mem *)&heap_ptr[mem->next];
        heap_end->magic= HEAP_MAGIC;
        heap_end->used = 1;---------------------------------------------------------到这一句就异常了
        heap_end->next = mem_size_aligned + SIZEOF_STRUCT_MEM;
        heap_end->prev = mem_size_aligned + SIZEOF_STRUCT_MEM;

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

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-11-24 16:19:10 | 显示全部楼层
能跑,你的工程不是STM32F103C的配置吧。因为103C内存比较小,也可以看看itspy的uip。

出0入0汤圆

 楼主| 发表于 2010-11-25 10:05:35 | 显示全部楼层
回复【1楼】ffxz
能跑,你的工程不是stm32f103c的配置吧。因为103c内存比较小,也可以看看itspy的uip。
-----------------------------------------------------------------------

感谢ffxz的帮助,真的是内存小了。我把内存大小改为20K的就可以了。

出0入0汤圆

发表于 2010-11-28 23:47:49 | 显示全部楼层
跑uip吧,uIP本身的消耗是比较少的,经过一定的优化3,4K以下都可以,这样就可省出很多空间,再加上RTT,那就不错了

出0入0汤圆

发表于 2011-2-24 16:12:27 | 显示全部楼层
回复【2楼】guocai
回复【1楼】ffxz  
能跑,你的工程不是stm32f103c的配置吧。因为103c内存比较小,也可以看看itspy的uip。
-----------------------------------------------------------------------
感谢ffxz的帮助,真的是内存小了。我把内存大小改为20k的就可以了。
-----------------------------------------------------------------------

在哪里修改内存大小?我也遇到这样的情况

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-5-16 09:20

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

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