上层
在嵌入式系统中,上层关注于具体应用,需要更多的产品知识,技术方面更多的是在Task层次上实现对应的功能。如,我们要设计一款水质分析仪,那么,我们必须要学习水质分析仪相关的知识,需要测量哪些数据,需要设定哪些数据,数据如何采样,用户应用场景是什么等等。这些不同的功能,通常由task实现,如通信用的Modbus task,用于数据采集的AD task,用于计算相应物理量的测量task等等。这些,对产品知识以及嵌入式OS的task调度,task的职责,优先级顺序,必须有充分的了解。而对于那些像AD变换器如何工作,定时器如何设计等,需要底层工程师的支持了。
底层
在嵌入式系统中,底层开发或者说是驱动开发,则关注于咱们的嵌入式板卡各个模块能否正常的工作。这里需要包含各种CPU资源以及外设资源,中断,定时器,串口,EEPROM和FLASH,保证各个功能模块正常工作,以及提供给上层友好的接口。EEPROM的驱动包括,EEPROM的初始化,配置相关寄存器,EEPROM中断服务程序,EEPROM的读写接口。
在一些嵌入式开发板上,前面的很多实验都是偏底层的,如何写驱动,目的是要大家了解这块板卡的各个模块正常工作,而高级实验或者说综合实验,往往是偏上层的,把板卡上的所有模块综合起来,完成一个或几个具体的应用。