我很少在嵌入式Linux中获得data_abort异常(kern = 2.6.10)ARM处理器
我的踪迹显示我得到了 来自__dabt_svc的do_DataAbort,它是数据中止的处理程序 来自do_DataAbort的do_page_fault 从exit.c中的某个地方do_page_fault 点击BUG_ON
BUG_ON(p == reaper || reaper-> state> = EXIT_ZOMBIE || reaper-> exit_state> = EXIT_ZOMBIE);
in function 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
其中任何一个都可能与为内核创建新任务有关吗?
我尝试追溯头文件,但这是一个真正的迷宫! 提前致谢