AMSS - Advanced Mobile Subscriber Software

在高通7系列的架构中,一个IC内部集成有两个ARM处理器,一个ARM9,专门负责处理通信协议,射频以及GPIO等,另外一个是ARM11,用来处理多媒体,以及其他的一些任务。在ARM9端,有一个自己的操作系统,我们称之为AMSS (Advanced Mobile Subscriber Software),在ARM11端,可以执行我们熟知的一些操作一些,例如linux。这两个处理器之间通过shared memory的硬件方式来沟通,操作系统之间通过RPC - remote procedure call的方式交互数据。表面看看起来二者之间的通信很容易理解,但其实在实际开发上却是不同的。由于ARM9是负责最直接的硬件IO的控制,因此处理默认的PIN定义可以有AMSS先做好之外,如果在linux执行的时候改变的话,必须通过RPC去请求ARM9上面的AMSS来处理。然而,RPC是利用Shared memory driver来forward,由于shared memory driver是没有原始码的,因此对于linux kernel里面的driver来讲,有部分的API等同于是没有源码与追踪的。只能假设share memory里面的程序是没有问题的。
下面来看看AMSS的软件架构
|-- AMSS
|    |-- platform
|    |-- products
|
|-- AMSS_CUST
     |--products
AMSS里面的就是amss的源码,包含platform以及我们对这个芯片提供的一些服务,这些服务都以task的形式存在products下。
在\AMSS\platform下包含有l4, cs, libstd, 与rte。这些为\AMSS\products下的task提供了底层运行环境。L4是内核,提供地址空间、线程、IPC等功能;cs(component service)实在L4的基础上提供了一个rte(run time environment),提供了内存保护,线程创建、同步等功能,高通定义了相关的接口可以让我们增加RTE所能提供的功能;libstd里面包含了AEE(application executive)的接口和一个静态的AEE库;rte里面包含一些与IPC有关的内容。
在\AMSS\products下包含很多内容,详情如下:
|-- 76XX
     |-- 1x                      // Source code for CDMA 1x protocol
     |-- apps                  // Source code for some BREW apps, such as core and UI
     |-- apps_proc         // Application boot loader
     |-- build                  // Trace32 JTAG script for building, build image, and log
     |-- core                   // Shared APIs folder
     |-- dal                     // Device abstract layer code
     |-- data                  // Source code for data services
     |-- drivers              // Drivers for LCD, peripherals, etc.
     |-- hal                    // Hardware abstract layer code
     |-- hdr                   // Source code for high data rate protocal
     |-- modem             // Modem AMSS source code
     |-- modem_proc    // Modem AMSS boot files
     |-- multimedia       // Multimedia files, including audio, video, etc.
     |-- nas                  // Source code for NAS layer protocal
     |-- secboot           // Boot loaders, from PBL to OEMSBL
     |-- services           // Source code for services
     |-- tools                // Code for flash operations
     |-- wcdma             // Source code for WCDMA protocol
     |-- wconnect         // BT soc config and ftm (factory test mode)

你可能感兴趣的:(多线程,linux,Flash,mobile,brew)