这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » CODE,CONST 【求助】【原创】如何将函数指针数组放到CODE(CONST

共2条 1/1 1 跳转至

CODE,CONST 【求助】【原创】如何将函数指针数组放到CODE(CONST)段

院士
2006-09-17 18:14:16     打赏
CODE,CONST 【求助】【原创】如何将函数指针数组放到CODE(CONST)段



关键词: CONST     求助     原创     如何     函数     指针     数组         

院士
2006-12-22 22:43:00     打赏
2楼
问 高手请留意,我以前习惯于c51的编程,刚转向MSP430 ,用的是IAR的编译器,在使用中遇到一个困扰的问题,想得到指教。
我用函数指针数组构成一个命令的散转表,见下:
.
void (*FUN_PTR)(); /* 函数调用指针 */
void (*cmd_TAB[]) () = [ fun1(), fun2(),fun3(),....] //命令散转表
.
.
问题是这个表,在编译后发现落在了RAM段,而不是我希望的CODE(const)段,我也想了不少办法,如加前缀 const ,或 #pragma loction = “CONST”等,但编译 却通不过。在c51中有个*code 类型的执针可用 如:void *code cmd_TAB[] ,请问MSP430 IAR的 c 如何解决这个问题?
谢谢! 1: void (*const cmd_TAB[]) ( void ) = { fun1(), fun2(),fun3(),.... }; 2: 多谢 PPRJ ,终于可以了! 3: 谢谢了,我也被这个问题折磨了很久,刚刚在这里发了SOS贴呢。。。谢谢!!楼上的两位大哥,以后的路还请多多关照,因为小弟是刚刚开始考虑这个事件触发式的操作系统的。。。 4: 我也遇到同样的问题,我是在CODE段定义了一段数组代码,编译也能通过,但是在调用时,应该怎么调用呢?
word const code_table[]={0x4031,0x0600,0x40B2,0x5A80,0x0120,0x40F2,0x001F,0x0022}; 5: 还是编译不过去呀?!!! 请楼主指教, 多谢!!!!!

我用的是IAR V2.20A 编译器,编译报错信息是:
Error[Pe059]: function call is not allowed in a constant expression 6: 版主能把在code段定义常数和函数指针等的语法总结一下吗 7: 五楼的,可以这么用
xx=code_table[i] 这里数组名与指针是一样的

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]