[RTT 루틴 연습] 6.2 Finsh에서 사용자 정의 함수 실행

2152 단어
Finsh에서 직접 정의된 함수를 실행할 수 있습니다.공식적으로는 세 가지 방식이 있는데 두 번째는 비교적 편리하다고 생각합니다. 다른 것은 소개하지 않겠습니다.
우선 응용 프로그램이 필요합니다.c에finsh가 포함되어 있습니다.h 헤더 파일, 그리고 함수 아래에 매크로 추가
 
   
FINSH_FUNCTION_EXPORT ( fun_with_arg , function with a argument );
程序
#include 

#include 

static rt_thread_t tid = RT_NULL;

static void thread_entry(void *parameter)
{
    while (1)
    {
        rt_thread_delay(1000);
    }
}

void fun_with_arg(int a)
{
    rt_kprintf("fun's arg is: %d.
", a); } FINSH_FUNCTION_EXPORT(fun_with_arg, function with a argument); int rt_application_init() { tid = rt_thread_create("tid", thread_entry, RT_NULL, 1024, 8, 50); if (tid != RT_NULL) rt_thread_startup(tid); return 0; }

이것은 참고가 있는 함수임을 볼 수 있다.
Finsh
finsh>>list() 
--Function List: 
fun_with_arg -- funciton with a argument 
list_mem -- list memory usage information 
hello -- say hello world 
version -- show RT-Thread version information 
list_thread -- list thread 
list_sem -- list semaphone in system 
list_event -- list event in system 
list_mutex -- list mutex in system 
list_mailbox -- list mail box in system 
list_msgqueue -- list message queue in system 
list_mempool -- list memory pool in system 
list_timer -- list timer in system 
list_device -- list device in system 
list -- list all symbol in system 
[l] fun 
--Variable List: 
dummy -- dummy variable for finsh 
0, 0x00000000 

우리
fun_with_arg
가 추가되었습니다.
그리고 Finsh에서 실행을 해보도록 하겠습니다.
fun_with_arg(7)
받으면
finsh>>fun_with_arg(7) 
fun's arg is: 7 
0, 0x00000000 

전재 대상:https://www.cnblogs.com/lyyyuna/archive/2013/04/07/4123912.html

좋은 웹페이지 즐겨찾기