打印

单片机程序有标准的接口函数之类的吗?

[复制链接]
1838|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
areshan|  楼主 | 2011-4-22 08:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟最近在学习LINUX,找了些驱动资料看,没有搞明白linux与硬件相关的程序是怎么处理的,怎么实现统一接口的,好多的书都说的不明不白。好像是通过让驱动程序按照标准的系统调用函数open,read,close,ioctl,lseek等标准来写的,然后通过函数指针实现的。这样就实现了软硬件的分离,程序的移植性就好了。
这些让我想到我们单片机搞单片机的同胞,大部分各自为战,为什么我们不能搞出一套统一的函数了,单片机的外设毕竟不是很多,而且类似性很强,很容易抽象出标准函数来的,这样就可以实现分层,让程序更容易通用。。。。。。。。。。
不知道我的想法对不对,还有各位大侠在工作中是怎么积累自己通用函数量的??????????????

相关帖子

沙发
areshan|  楼主 | 2011-4-22 08:55 | 只看该作者
这个是ATXMEGA里的,可以参考下!
void ioport_configure_port_pin(void *port, pin_mask_t pin_mask,port_pin_flags_t flags)
{
        uint8_t pin;

        for (pin = 0; pin < 8; pin++) {
                if (pin_mask & (1 << pin)) {
                        *((uint8_t*)port+PORT_PIN0CTRL+pin)=flags;
                }
        }
        /* Select direction and initial pin state */
        if (flags & IOPORT_DIR_OUTPUT) {
                if (flags & IOPORT_INIT_HIGH) {
                        *((uint8_t*)port+PORT_OUTSET)=pin_mask;
                }
                else {
                        *((uint8_t*)port+PORT_OUTCLR)=pin_mask;
                }
                *((uint8_t*)port+PORT_DIRSET)=pin_mask;
        }
        else {
                *((uint8_t*)port+PORT_DIRCLR)=pin_mask;
        }
}

使用特权

评论回复
板凳
areshan|  楼主 | 2011-4-22 15:59 | 只看该作者
哎,没人回应!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

127

主题

728

帖子

0

粉丝