hellowold
Read time: 2 minute(s)
在 Luban-Lite 中有以下两种方案添加开机运行的 hellowold:
修改 main 函数
SDK 默认创建了 hellowold 例程,可以直接在例程中添加私有函数逻辑:
-
hellowold 例程代码为 application/rt-thread/helloworld/main.c。
-
main 函数是 RT-Thread 的主入口函数。
-
例程代码目录的 SConscript 脚本默认会编译该目录中的所有 c 文件,因此可以直接添加用户代码文件,然后在 main 函数中调用新添加的文件中的函数。
application/rt-thread/helloworld/main.c | 3 +++ application/rt-thread/helloworld/test.c | 15 +++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 application/rt-thread/helloworld/test.c diff --git a/application/rt-thread/helloworld/main.c b/application/rt-thread/helloworld/main.c index 0dadb95e2..003233588 100644 --- a/application/rt-thread/helloworld/main.c +++ b/application/rt-thread/helloworld/main.c @@ -20,6 +20,8 @@ #include <boot_param.h> #endif +extern void helloworld(); + int main(void) { #ifdef AIC_AB_SYSTEM_INTERFACE @@ -48,5 +50,6 @@ int main(void) #ifdef ULOG_USING_FILTER ulog_global_filter_lvl_set(ULOG_OUTPUT_LVL); #endif + helloworld(); return 0; } diff --git a/application/rt-thread/helloworld/test.c b/application/rt-thread/helloworld/test.c new file mode 100644 index 000000000..634da82e6 --- /dev/null +++ b/application/rt-thread/helloworld/test.c @@ -0,0 +1,15 @@ +#include <rtthread.h> +#include <stdio.h> + +void helloworld() +{ + printf("Hello World!\n"); +} -- 2.29.0
自动初始化
RT-Thread 的自动初始化机制是指初始化函数不需要被显式调用,只需要在函数定义处通过宏定义的方式进行申明, 则该函数在系统启动过程中将被顺序执行:
-
代码可以在任意地方声明和编译
-
通过 INIT_APP_EXPORT 申明
diff --git a/application/rt-thread/helloworld/test.c b/application/rt-thread/helloworld/test.c new file mode 100644 index 000000000..18eb0821f --- /dev/null +++ b/application/rt-thread/helloworld/test.c @@ -0,0 +1,10 @@ +#include <rtthread.h> +#include <stdio.h> + +int helloworld(void) +{ + printf("Hello World!\n"); + return 0; +} + +INIT_APP_EXPORT(helloworld);