如果找到的对象与预期不符,我们使用RT_ASSERT来断言错误,并确保在多线程环境中数据的一致性。接着,我们离开临界区,并开始初始化对象的参数。我们将对象的类型设置为静态,并复制给定的名称到对象的名字字段中。此外,我们还调用了rt_object_attach_hook函数来添加对象到相应的钩子中。在禁止硬件中断的情况下,我们...
rt_assert_hook0x20000124Data4kservice.o(.data) rt_object_trytake_hook0x200001f8Data4object.o(.data) rt_object_take_hook0x200001fcData4object.o(.data) rt_object_put_hook0x20000200Data4object
RT_ASSERT(obj != object); } }/* leave critical */rt_exit_critical();/* initialize object's parameters *//* set object type to static */object->type = type | RT_Object_Class_Static;/* copy name */rt_strncpy(object->name, name, RT_NAME_MAX); RT_OBJECT_HOOK_CALL(rt_object_att...
最后开启 env 工具,进入 IoT Board 的PM 例程目录,在 ENV 命令行里输入 menuconfig 进入配置界面配置工程: 配置PM 组件:勾选 BSP 里面的Hareware Drivers Config ---> On-chip Peripheral Drivers ---> Enable Power Management,使能了这个选项后,会自动选择 PM 组件和 PM 组件需要的 IDLE HOOK 功能: 配置组...
if(mem==lfree){/* 寻找下一个空闲块并更新lfree指针*/while(lfree->used&&lfree!=heap_end)lfree=(struct heap_mem*)&heap_ptr[lfree->next];RT_ASSERT((
static void rtt_user_assert_hook(const char* ex, const char* func, rt_size_t line) { rt_enter_critical(); ulog_output(LOG_LVL_ASSERT, "rtt", RT_TRUE, "(%s) has assert failed at %s:%ld.", ex, func, line); /* flush all log */ ...
rt_object_trt_object_allocate(enum rt_object_class_type type,const char*name){struct rt_object*object;register rt_base_t temp;struct rt_object_information*information;RT_DEBUG_NOT_IN_INTERRUPT;/* get object information */information=rt_object_get_information(type);RT_ASSERT(information!=RT_NULL...
* @param hook the hook function */ void rt_assert_set_hook(void (*hook)(const char *ex, ...
{RT_ASSERT(obj!=object);}}/* leave critical */rt_exit_critical();/* initialize object's parameters *//* set object type to static */object->type=type|RT_Object_Class_Static;/* copy name */rt_strncpy(object->name,name,RT_NAME_MAX);RT_OBJECT_HOOK_CALL(rt_object_attach_hook,(...
//#define RT_USING_HOOK /* 定义了空闲线程的栈大小 */ #defineIDLE_THREAD_STACK_SIZE 1024 FinSH 移植 FinSH 组件使用有三种种方式,如下: 通过rt_hw_console_getchar() 函数获取控制台数据 FinSH 线程的使用方式主要是通过实现rt_hw_console_getchar()函数,获取控制台输入的数据,具体方式看我之前的笔记,ST...