CIU32_L051_M307R/RTOS/inc/rtm.h

49 lines
1.3 KiB
C
Raw Normal View History

2024-09-05 10:01:45 +08:00
/***
* @Author: mbw
* @Date: 2024-09-04 16:46:02
* @LastEditors: mbw && 1600520629@qq.com
* @LastEditTime: 2024-09-05 10:01:04
* @FilePath: \USART1_Interrupt - RT-Thread\RTOS\inc\rtm.h
* @Description:
* @
* @Copyright (c) 2024 by ${git_name_email}, All Rights Reserved.
*/
#ifndef __RTM_H__
#define __RTM_H__
#include <rtdef.h>
#include <rtthread.h>
#ifdef RT_USING_MODULE
struct rt_module_symtab
{
void *addr;
const char *name;
};
#if defined(_MSC_VER)
#pragma section("RTMSymTab$f",read)
#define RTM_EXPORT(symbol) \
__declspec(allocate("RTMSymTab$f"))const char __rtmsym_##symbol##_name[] = "__vs_rtm_"#symbol;
#pragma comment(linker, "/merge:RTMSymTab=mytext")
#elif defined(__MINGW32__)
#define RTM_EXPORT(symbol)
#else
#define RTM_EXPORT(symbol) \
const char __rtmsym_##symbol##_name[] rt_section(".rodata.name") = #symbol; \
const struct rt_module_symtab __rtmsym_##symbol rt_section("RTMSymTab")= \
{ \
(void *)&symbol, \
__rtmsym_##symbol##_name \
};
#endif
#else
#define RTM_EXPORT(symbol)
#endif
#endif