善财童子SIXSIXSIX 2015-01-13 02:58 采纳率: 50%
浏览 1804
已采纳

用C++面向对象的方法访问硬件资源

最近在开发一个基于ATMega2560的单片机系统,因为外围模块比较多,
同时也想以后开发其它板子时,能够稍微修改上一次的代码就可以适用到新板子,
查阅很多资料后,发现APM飞控就是用这样的一种思想:硬件抽象层;还有就是Android系统也使用了硬件抽象层的概念,这样的设计可以极大地提高兼容性。然而当我仔细研究APM的源码之后,我发现我找不到任何访问硬件的信息,难道C++不能直接访问硬件吗?在这里提问,希望各位师兄师姐,给位大神,牛人能够不吝赐教,小生感激不尽!在此先谢过大家了~~~

  • 写回答

5条回答 默认 最新

  • 无规矩不成方圆 2015-01-14 06:06
    关注

    嵌入式操作系统一般都是使用宏定义来定义设备的接口地址,像我之前使用的C51单片机,根本没有操作系统,通过说明书可以了解到它的许多接口地址,这些都是生产厂商规定好的,我使用的时候都是重新用宏来定义一下(地址较少相对简单),如果是其他平台(arm板等等),建议你搜索一下其他嵌入式系统,我之前一直在用ucos-ii,这是一款专门的嵌入式操作系统,代码精简深入,用C语言写的,其中就涉及到你说的硬件操作问题,很适合你去学习,相信你看过以后问题自然就会明白了。这是ucos官网http://micrium.com/

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试