最近有客户问我怎么在应用层调用自己在bsp 中写的驱动函数,这边我建议他使用:
API_SymbolAdd(CPCHAR pcName, caddr_t pcAddr, INT iFlag); 函数
现在以应用层调用ko模块中函数为示例,bsp中直接跟ko模块差不多:
kernel module 示例代码:
#define __SYLIXOS_KERNEL
#include <SylixOS.h>
#include <module.h>
void test_xxx(void)
{
printf("test_xxx\n\r");
return;
}
/*
* SylixOS call module_init() and module_exit() automatically.
*/
int module_init (void)
{
API_SymbolAdd("test_xxx",(caddr_t)test_xxx,LW_SYMBOL_FLAG_XEN);
printk("hello_module init!\n");
return 0;
}
void module_exit (void)
{
printk("hello_module exit!\n");
}
应用层示例:
#include <stdio.h>
extern void test_xxx(void);
int main (int argc, char **argv)
{
test_xxx();
printf("Hello SylixOS!\n");
return (0);
}
在模拟器上运行示例: