硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2369|回复: 7
收起左侧

[RL-RTX] 请教下,使用 rtx5 v2 封装层,我想指定 stack_mem , cb_mem 的缓冲器地址,需要任何配置啊 ?

[复制链接]

610

主题

3055

回帖

4905

积分

至尊会员

积分
4905
发表于 2021-8-12 08:53:35 | 显示全部楼层 |阅读模式
请教下,使用 rtx5 v2 封装层,我想指定 stack_mem , cb_mem 的缓冲器地址 及 cb_size 大小的话,需要如何配置啊 ?

如下图所示:
11220.png


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106856
QQ
发表于 2021-8-12 09:42:29 | 显示全部楼层
你的截图里面,我注释掉的代码就是。
回复

使用道具 举报

610

主题

3055

回帖

4905

积分

至尊会员

积分
4905
 楼主| 发表于 2021-8-12 10:08:44 | 显示全部楼层
eric2013 发表于 2021-8-12 09:42
你的截图里面,我注释掉的代码就是。

貌似历程提供的,这几个刚好是 都是没有使用的,目前我想把这个使用起来,

我目前按照你提供的例程 应用是没有问题的,但是我吧 你屏蔽的那几行使用起来就不行,宏配置也捣鼓了一下,没有成功啊,所以我就来问一下大神你啊
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106856
QQ
发表于 2021-8-12 17:03:12 | 显示全部楼层
QQ截图20210812170256.png
回复

使用道具 举报

610

主题

3055

回帖

4905

积分

至尊会员

积分
4905
 楼主| 发表于 2021-8-13 09:25:27 | 显示全部楼层

你好,我的应用如下:

方法 1
__align(8) os_thread_t   AppTaskStartTCB;
__align(8) uint64_t  AppTaskStartStk[APP_CFG_TASK_START_STK_SIZE * sizeof(uint32_t)/8];


/* 任务的属性设置 */
const osThreadAttr_t vTaskCreate_Attr =
{
        /* 未使用 */
//        .cb_mem = &worker_thread_tcb_1,
//        .cb_size = sizeof(worker_thread_tcb_1),
//        .stack_mem = &worker_thread_stk_1[0],    // FreeRTOS 系统的 V2 封装层可以不使用
//        .stack_size = sizeof(worker_thread_stk_1),
//        .priority = osPriorityAboveNormal,
//        .tz_module = 0
       
        .name = "vTaskCreate",
        .attr_bits = osThreadDetached,
        .priority = (osPriority_t )APP_CFG_TASK_START_PRIO, //任务优先级设置

        .stack_size = APP_CFG_TASK_START_STK_SIZE * sizeof(uint32_t),  //  V2 封装层必须使用
  .stack_mem  = &AppTaskStartStk[0],              //  V2 封装层必须使用

  .cb_mem     = &AppTaskStartTCB,             //  V2 封装层必须使用
  .cb_size    = sizeof(os_thread_t),      //  V2 封装层必须使用
};


xHandleTask_MainTask = osThreadNew(vTaskCreate, NULL, &vTaskCreate_Attr);  

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

方法 2.

os_thread_t  * AppTaskStartTCB=0;
uint64_t     *AppTaskStartStk=0;    //[APP_CFG_TASK_START_STK_SIZE * sizeof(uint32_t)/8];


osThreadAttr_t vTaskCreate_Attr;

void show(void)
{
        AppTaskStartTCB= (os_thread_t *)mymalloc(SRAM4, sizeof(os_thread_t));
        if(AppTaskStartTCB== NULL)
        {
                My_Printf("AppTaskStartTCBfail ...\r\n");
                while(1) {}
        }
        AppTaskStartStk= (void *)mymalloc(SRAM4, APP_CFG_TASK_SHOW_STK_SIZE * sizeof(uint32_t));
        if(AppTaskStartStk== NULL)
        {
                My_Printf("AppTaskStartStk fail ...\r\n");
                while(1) {}
        }



                vTaskCreate_Attr.name       = "vTaskCreate";
                vTaskCreate_Attr.attr_bits  = osThreadDetached;
                vTaskCreate_Attr.priority   = (osPriority_t)APP_CFG_TASK_START_PRIO;
                vTaskCreate_Attr.stack_size = APP_CFG_TASK_START_STK_SIZE * sizeof(uint32_t);
                vTaskCreate_Attr.stack_mem  = AppTaskStartStk;
                vTaskCreate_Attr.cb_mem     = AppTaskStartTCB;
                vTaskCreate_Attr.cb_size    = sizeof(os_thread_t);

               xHandleTask_MainTask = osThreadNew(vTaskCreate, NULL, &vTaskCreate_Attr);  

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
说明
使用方法 1 是可以的,
使用方法 2 是不可以的

安装方法 2 的应用的话,是还需要配置什么吗  ???














回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106856
QQ
发表于 2021-8-13 09:51:30 | 显示全部楼层
hpdell 发表于 2021-8-13 09:25
你好,我的应用如下:

方法 1


1、方法一:
__align(8) os_thread_t   AppTaskStartTCB;                                                               //删掉前端__align(8),多余
__align(8) uint64_t  AppTaskStartStk[APP_CFG_TASK_START_STK_SIZE * sizeof(uint32_t)/8];  //删掉前端__align(8),多此一举,uint64_t  定义的变量就是8字节对齐的。

2、方法二、
多此一举,RTX5本身默认内存分配就是动态的,类似malloc方式的。
回复

使用道具 举报

610

主题

3055

回帖

4905

积分

至尊会员

积分
4905
 楼主| 发表于 2021-8-13 10:29:06 | 显示全部楼层
eric2013 发表于 2021-8-13 09:51
1、方法一:
__align(8) os_thread_t   AppTaskStartTCB;                                           ...

我是想把内存定义到其他的内存区域啊
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106856
QQ
发表于 2021-8-14 08:37:39 | 显示全部楼层
hpdell 发表于 2021-8-13 10:29
我是想把内存定义到其他的内存区域啊

RTX5的全局动态内存地址重定向方法
http://www.armbbs.cn/forum.php?m ... 8313&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-8 00:36 , Processed in 0.269195 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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