1.芯片基本功能模块
在驱动开发过程中我们最常接触的就是寄存器。内核与硬件联系紧密,但它本身属于软件,可以说是与硬件联系最紧密的软件。作为软件,与硬件沟通很多情况下都是通过寄存器实现的。
寄存器按照功能不同一般可以分为三类:
控制寄存器:可写,用来控制芯片的行为、工作方式等;。
状态寄存器:可读,用来反映芯片当前的统计、异常等状态;
数据寄存器:数据寄存器,可读,读取它们可以获得芯片产生的数据;
每一份芯片数据手册中都应该有完整的寄存器列表和它们的描述,这是人们开发驱动过程中关心的重点。
2.复位
复位( reset)是芯片的一项重要功能,类似网管的无敌技能-重启,在芯片初始化和从异常状态恢复阶段都需要,在此过程中可以加载固件、清除状态等。它并不是必不可少的,但是有了它可以为芯片提供一层额外的保障,当芯片处于异常状态时,可以通过它将芯片的状态复原。
从驱动角度看,复位一般通过芯片的引脚来控制,以高电平低电平的变化作为触发,可以将该引脚连接到GPIo 上,由GPIo控制电平,对GPIo而言是输出。
除了硬件复位外,有些芯片还支持软复位( soft reset ),通过写芯片的某些寄存器触发复位操作。
3.中断
中断的英文是interrupt,意思就是请求关注,通知CPU某事发生,比如数据可读、设备异常、某项操作完毕等。举个现实生活中的例子,领导