我正在开发一个简单的操作系统,它需要一个小的中断向量。我一直在阅读有关中断向量的内容,以便理解这些概念。
让我感到困惑的是,我怎么知道中断处理程序的地址?我知道我需要为不同类型的中断创建不同的函数,但我怎么知道函数的地址?
我正在用C开发我的代码。
答案 0 :(得分:1)
中断处理程序最后是一个函数。
一个功能从"地址"开始。你可以简单地使用它的名字来检索它。
以下代码将警告传递的%p
参数类型,但是是解释性的:
#include <stdio.h>
void dummy_ISR ( void )
{
}
int main ( void )
{
printf("Address of function: %p\n", dummy_ISR);
}
您可以使用函数指针创建表
#include<stdio.h>
int dummy_isr1 ( void )
{
return 0;
}
int dummy_isr2 ( void )
{
return 0;
}
typedef int (*functionPtr)(void);
functionPtr table[] =
{
dummy_isr1,
dummy_isr2
};
int main(void)
{
for (size_t i=0; i<sizeof(table)/sizeof(table[0]); i++)
{
printf("Address %zu: %p\n", i, table[i]);
}
return 0;
}