IAR跨工程调用函数
STM32L1xx系列,有APP和bootload区,这两个区都要调用同一个函数,这个函数打包成hex文件烧录其他区中。那APP和bootload怎么调用这个函数呢?注:这个函数需要占用8K的数据(初始化数据,不能精简),如果都存在在APP和bootload区,则需要16K,空间不够。 函数指针啊,把函数的地址放在固定的地方,另外一个程序通过这个地址的指针来实现另外区的函数调用。
至于函数定义,那就不是问题咯 参考SWI接口,
公共函数需要指定一个入口地址(比如0x80000000,必须是绝对地址,不能两个工程使用相同函数名就认为入口地址一样)。
然后就:
typedef void *(*func_f)(void *parg); // 参数结构自定义,此处仅是示例
func_f func = (func_f)0x80000000;
func(NULL);
页:
[1]