查看: 4033|回复: 1

[其他] 难住了:中断服务函数指针的长度搞不定

[复制链接]

该用户从未签到

1

主题

1

帖子

0

新手上路

Rank: 1

积分
5
最后登录
1970-1-1
发表于 2009-3-27 11:30:24 | 显示全部楼层 |阅读模式
我准备使用中断向量表重映射功能,映射到0X7E00- 0X7EFF 区域,并定义了一个函数指针的结构体类型vect_tab,然后用vect_tab定义了一个中断向量表:const vect_tab appl_vect_tab ,但是为什么函数指针编译下来是3个字节啊?
中断向量的地址应该是2字节的。我已经把中断向量表这样写了#pragma CODE_SEG NON_BANKED。
typedef const struct
{
/* 0x__10 */ void(* spurious_int)(void); //sizeof(appl_vect_tab.spurious_int) = 3
/* 0x---- */ void(* reserved1[39])(void); //DATASHEET 中保留区域
/* 0x__60 */ void(* ram_acc_vlt)(void);
/* 0x__62 */ void(* xg_sw_err)(void);
/* 0x__64 */ void(* xg_sw_trg7)(void);
/* 0x__66 */ void(* xg_sw_trg6)(void);
/* 0x__68 */ void(* xg_sw_trg5)(void);
/* 0x__6A */ void(* xg_sw_trg4)(void);
/* 0x__6C */ void(* xg_sw_trg3)(void);
/* 0x__6E */ void(* xg_sw_trg2)(void);
/* 0x__70 */ void(* xg_sw_trg1)(void);
/* 0x__72 */ void(* xg_sw_trg0)(void);
/* 0x__74 */ void(* prd_inttimer_chl3)(void);
/* 0x__76 */ void(* prd_inttimer_chl2)(void);
/* 0x__78 */ void(* prd_inttimer_chl1)(void);
/* 0x__7A */ void(* prd_inttimer_chl0)(void);
...
...
}vect_tab, *vect_tab_handle;
#pragma CODE_SEG NON_BANKED
/* 117 vectors, occupy 351 bytes */
const vect_tab appl_vect_tab =
{
/* 0x__10 */ NULL,
/* 0x____ */ { NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL
},
/* 0x__60 */ NULL,
/* 0x__62 */ NULL,
/* 0x__64 */ NULL,
/* 0x__66 */ NULL,
/* 0x__68 */ NULL,
/* 0x__6A */ NULL,
/* 0x__6C */ NULL,
/* 0x__6E */ NULL,
/* 0x__70 */ NULL,
/* 0x__72 */ NULL,
/* 0x__74 */ NULL,
/* 0x__76 */ NULL,
/* 0x__78 */ NULL,
/* 0x__7A */
&timer0_isr
,
...
...
}
#pragma CODE_SEG DEFAULT
 
我知道答案 目前已有0人回答
回复

使用道具 举报

该用户从未签到

4

主题

44

帖子

0

新手上路

Rank: 1

积分
127
最后登录
1970-1-1
发表于 2009-3-29 20:20:58 | 显示全部楼层

RE:难住了:中断服务函数指针的长度搞不定

前面加一个强制转换就行了,(unsigned int)
或者你选择small模式。
在bank单片机寻址的时候加了ppage,所以是24位了,
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-9-8 20:31 , Processed in 0.078968 second(s), 23 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表