请参阅:ARM ARM – 第B3章内存管理单元.
ARM ARM – 2.6.5数据中止(数据访问存储器中止).
您还需要模拟中断.使用计时器(无论你喜欢什么分配),驱动程序/ OS ISR都可以被转移.为了最小化定时器使用,timing wheels可以用于创建不同的中断到达的概率分布函数.如果可能,您也可以将此定时器作为FIQ.这样可以让测试设备的ISR接收到数据更新,即使是常规IRQ也被屏蔽了.您也可以使用FIQ处理程序在恒定定时器中断模拟DMA.当然,这假设您的测试驱动程序不使用FIQ,并且您可以使用FIQ计时器.
许多OS驱动程序具有寄存器缓存,特别是如果器件是只写芯片.看看this code也可能是有帮助的.
对于L4,特定的单元被授予实际物理设备范围的权限.这被重新定位在虚拟空间中.虚拟机管理程序的另一个问题是您有多个 *** 作系统正在运行,您必须将许可权切换到不同硬件外设的闪烁/闪烁.我不相信你必须这样做.
Cavets:Multi-CPU locking可能有数据故障处理的问题;您的驱动程序不应该通过多cpu访问硬件.该处理程序可以运行中断锁定和单个cpu,这个解决方案将工作.我相信如果发生异常,则strex将返回一个条件代码集.可能您可以在故障处理程序中处理此问题.
我提出了上面的解决方案,因为你的措辞和arm标签.
正如Pekka所说,如果你选择使用C,这可能在design for test有用.一个有用的模式是驱动程序中访问硬件的纯虚拟接口.测试时,将虚拟接口替换为仿真类;在“C”中也可以使用函数指针包.这些类型的活动是well documented,所以我排除了.但是,您可能会考虑澄清问题,也可能会重新标记,如果这是您正在寻找的解决方案.
总结以上是内存溢出为你收集整理的c – ARM内核测试模块全部内容,希望文章能够帮你解决c – ARM内核测试模块所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)