【问题标题】:mbed uvisor and EthernetInterface overflowedmbed uvisor 和 EthernetInterface 溢出
【发布时间】:2017-02-09 16:18:11
【问题描述】:

我对 mbed 和 uvisor 很陌生,所以也许我的问题是关于理解事物的工作原理。我有一块 NXP FRDM-K64F 板,我正在尝试了解 mbed 和 uvisor。我已经成功编译了一些在不同盒子上运行的任务的基本示例。我正在尝试连接到 uvisor 中的其中一个盒子的网络,但有些东西无法正常工作。

这是主文件代码:

#include "uvisor-lib/uvisor-lib.h"
#include "mbed.h"
#include "main-hw.h"

/* Create ACLs for main box. */
MAIN_ACL(g_main_acl);

/* Enable uVisor. */
UVISOR_SET_MODE_ACL(UVISOR_ENABLED, g_main_acl);
UVISOR_SET_PAGE_HEAP(8 * 1024, 5);

int main(void)
{
    printf("----Eup---------\r\n");
    DigitalOut led(MAIN_LED);

    while (1) {
        printf("taka\r\n");
        led = !led;

        /* Blink once per second. */
        Thread::wait(1000);
    }
    return 0;
}

这是box文件中的代码:

#include "uvisor-lib/uvisor-lib.h"
#include "mbed.h"
#include "main-hw.h"
#include "EthernetInterface.h"

// Network interface
EthernetInterface net;

struct box_context {
    Thread * thread;
    uint32_t heartbeat;
};

static const UvisorBoxAclItem acl[] = {
};

static void my_box_main(const void *);

/* Box configuration
 * We need 1kB of stack both in the main and interrupt threads as both of them
 * use printf. */
UVISOR_BOX_NAMESPACE(NULL);
UVISOR_BOX_HEAPSIZE(3072);
UVISOR_BOX_MAIN(my_box_main, osPriorityNormal, 1024);
UVISOR_BOX_CONFIG(my_box, acl, 1024, box_context);


static void my_box_main(const void *)
{

    while (1) {
        printf("tan tan\r\n");
        Thread::wait(2000);
    }

}

我还没有添加具体的连接代码,只是定义了 EthernetInterface 对象,编译时出现以下错误:

../../../../arm-none-eabi/bin/ld.exe: Region m_data_2 overflowed with stack and heap
collect2.exe: error: ld returned 1 exit status

我已尝试更改堆大小的值,但我还没有找到使它起作用的方法。我错过了什么?

【问题讨论】:

    标签: c mbed


    【解决方案1】:

    在您的主框中,更改 UVISOR_SET_PAGE_HEAP 的值。

    在主框中带有UVISOR_SET_PAGE_HEAP(8 * 1024, 3);以及安全盒中的 8K 堆和它为我编译和链接的安全盒中的 UVISOR_BOX_STACK_SIZE 堆栈大小(mbed OS 5.3,K64F 上的 GCC ARM)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-13
      • 1970-01-01
      • 2011-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-10
      相关资源
      最近更新 更多