- 主题:代码自身如何知道运行在内核态?
场景:
对bsp代码进行插桩,有些运行在内核态,有些运行在用户态。 插桩的时候,往位图(共享内存,用户态分配)里面写路径信息。 针对bsp提供的API,做各种测试。 用户态通过调用API的方式,bsp执行插桩代码,统计覆盖情况。
问题:
剥离用户态程序、内核态程序,分别做处理,太麻烦了。 想用一个统一的方式,用户态bsp执行插桩,直接写入到共享内存(位图),内核态bsp知道自身在内核态(做一层转换)。 于是,就有了题目问题。
希望各位指点一二。 谢谢~
--
FROM 117.147.70.*
bsp不光光驱动,内存管理模块,还有loader之类
基本整个控制硬件(芯片系统)
感觉应该有办法
【 在 Bernstein 的大作中提到: 】
: 不太可能,否则大家都直接写用户态程序当内核驱动用了,那可好调试多了
: 二者的内存模型和可依赖的库都十分不同,(至少在目前)不存在统一开发的可能性
:
--
FROM 211.138.116.*
嗯嗯。 一到问题上容易犯困:(
【 在 z16166 的大作中提到: 】
: 不一定需要运行时检测吧?编译时不能通过#ifdef搞定?编译的人总会知道自己编译的是user还是kernel用的module吧
--
FROM 211.138.116.*
thanks~
【 在 poocp 的大作中提到: 】
: 用内嵌汇编运行特权指令来测试所处的处理器运行等级。
--
FROM 211.138.116.*