hellowold
4 Dec 2024
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);