2

我在嵌入式 Linux 中很少遇到 data_abort 异常(kern=2.6.10)ARM 处理器

我的跟踪显示我从 __dabt_svc 获得 do_DataAbort,这是从 exit.c 中某处的 do_DataAbort do_page_fault 中的数据中止 do_page_fault 的处理程序命中 BUG_ON

BUG_ON(p == reaper || reaper->state >= EXIT_ZOMBIE || reaper->exit_state >= EXIT_ZOMBIE);

在函数 static inline void choose_new_parent - 在文件 exit.c 中,这个函数显然检查了 linux/kernel/sched.h 中任务的父级(struct task_struct)

当我调用任何这些时,这里的任何人都可以确认我正在启动或结束内核中的任务:

iowrite8 ioread8
__kfifo_get / reset / put / len
wake_up
wait_event_interruptible_timeout
free_irq / disable_irq / request_irq
release / request _mem_region
copy_to / from _user
s3c2410_gpio_cfgpin_outp / inp / alt / pullup
_raw_modifyl / writel / readl
local_irq_restore / save
unregister_chrdev_region
kmalloc
clk_get_rate

其中任何一个都可能与向内核创建新任务有关?

我尝试追溯头文件,但它是一个真正的迷宫!提前致谢

4

0 回答 0