首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

#define install_vector(isr,address) (*(void*)(address)=(isr))的意义

2012-12-29 
#define install_vector(isr,address)(*(void**)(address)(isr))的意思定义一个宏#define install_vector

#define install_vector(isr,address) (*(void**)(address)=(isr))的意思
定义一个宏
#define install_vector(isr,address)  (*(void**)(address)=(isr))

定义2个函数
void fun_isr()
{
该函数直接向某个内存地址写入数字
}
long fun_address()
{
内嵌汇编代码:跳到某个内存位置
}


用法:

install_vector(fun_isr,fun_address()+14);

这个install_vector宏啥意思?

ps:看别人的嵌入式代码,里面写的,个人分析了一会,感觉像是从某个内存地址address上 运行某个函数isr 但又感觉不对:函数能从指定的内存位置开始运行吗?

请教各位高手,这个宏的意思
[解决办法]
(*(void**)(address)=(isr))
相当于 void **address;
      *address=isr;
[解决办法]


install_vector(fun_isr,fun_address()+14);//here second argument is a address

#define install_vector(isr,address)  (*(void**)(address)=(isr))//这里是个赋值,把isr这个地址给address这个地址指向的内容

for example:
isr = 0xAAAAAAAA;
-------------------------------
            
[解决办法]
-------------------------
[解决办法]

address---->
[解决办法]
  0xAAAAAAAA             
[解决办法]

            
[解决办法]
-------------------------
[解决办法]

-------------------------------
address is a pointer, 
(*(void**)(address)=(isr)) means address这个指针指向的内容赋一个地址

热点排行