我在学习过程中,看到一段前后台控制的反汇编程序。工作基本流程如下:
在SRAM中设定一个结构数组12个元素,每个元素的结构是:{int 程序运行状态;函数指针;延时次数}
在主程序中不断循环读这个12个元素的机构数组,如果程序运行状态为0,就把函数指针中的值付给Z,然后IJMP跳转到运行这个子程序,跳转之前延时指定的次数。
在这12个不同的子程序中完成不同功能,完成后再调用一个函数,把本子程序地址赋给结构数组中自己的位置中,并设定新的运行状态,和延时次数。
下面是我定义的结构数组:
struct Top_function_monitor{INT8U State; void (*Pr_top_function)(void); INT8U Delay_function;}Top_function_array[12]; //this structure is for control the main block function running
但在编程中如何把函数的首地址赋予到结构中的指针,不知道如何编程。
望各位帮帮忙!谢谢!
|