Vous êtes sur la page 1sur 3

ARM9 architecture and compiler Qualcomm's 7 series chip generally has two processors, ARM9 and ARM11: ARM9

Responsible for handling the communication protocol, RF, GPIO, an OS, called AMSS (Advanced Mobile Subscriber Software). ARM11 Responsible for common tasks, run the system is Linux, which is our usual sense of the main chip. These two processors interact via RPC and RPC is implemented through the Shared Memory. The AMSS The software architecture | - AMSS | | - Platform | | - Products | | - AMSS_CUST | - Products \ Platform \ AMSS contains L4, the CS, libstd with the RTE, these provide the underlying operating environment for the \ AMSS \ products under the task. L4 kernel address space, threads, IPC and other functions; CS (component the service) on the basis of L4 RTE (run time environment), to provide memory protection, thread creation, synchronization and other functions. libstd which contains the interface of the AEE (application executive) and a static AEE library; RTE which contains some of the contents of the IPC. \ | | | | | | | | | | | | | | | | | | | | The AMSS \ products contain a lot of content, as follows: - 76XX - 1x / / Source code for the CDMA 1x the protocol - Apps / / Source code for some the BREW the apps, such as core and the UI - Apps_proc / / Application boot loader - Build / / Trace32 the JTAG script for the building, the build image The, and log - Core / / Shared APIs for folder - Dal / / Device abstract layer code - Data / / Source code for the data services - Drivers / / Drivers for the LCD, peripherals, etc. - Hal / / the Hardware abstract layer code - Hdr / / Source code for high data rate protocal - Modem / / Modem AMSS the source code - Modem_proc / / Modem AMSS boot files - Multimedia / / the 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 the flash operations - Wcdma / / Source code for the of WCDMA the protocol - Wconnect / / BT soc config and ftm (factory test mode)

The above description is just an overall impression, by Rex, all of these source are organized, we look at the the AMSS start after running state: All the AMSS task to a thread running in the kernel process in the CS, including CS core services are based on the task in the form of running on top of REX's. The user process I guess is the class of products / apps inside capacity. After reading this diagram, let us start the process of the AMSS the source the: qcsbl_main_ctl will jump to l4 kernel, l4 the kernel to start after a good start igunar

server, and then start rex process (implementation of the / service / tmc / mobile.c main function ), amss / rex running a process in the l4 microkernel above, all of the task L4 threads. Here we take a closer look at this main function, in this main function inside the first call rex_init to initialize REX here Qualcomm, a tmc (task manager controler) as rex a good start after the first of TASK, by this task to start the task, and the system call rex function of these task management, through the tracking of these task we will be able to complete a feature from the top of the task to the bottom of the drive, for example pmic , nv, sim, etc. These services are based on the task in the form of running on top of rex. this function through the inside products/76xx/services/tmc.c the tmc_define_tasks macro judgment to determine which task need to start these macro control by products/76xx / build / ms / cust ******* h and products/76xx/build/ms/target ****** h to control, at compile time by configuration tsncjnlym.cmd of class to control some of the build environment options, as well as those modules need to compile through after the start of the cust or target head document control system which task the system startup. We see this tmc_define_tasks function under products/76xx/services/tmc.c AMSS which supports how many of TASK over 4000 lines of a function inside all call the definition of of rex System function rex_def_task on the task. Give nv example : 5374 rex_def_task (& nv_tcb, 5375 (rex_stack_word_type *) nv_stack, 5376 NV_STACK_SIZ, 5377 (rex_priority_type) NV_PRI, 5378 nv_task, 5379 0L); Which nv_task entry function for this task, we track this function will be able to find the execution of this task and call the procedure. The ARM9 compile the source in two ways: to compile under windows (cmd.exe), compiled under linux. Because we do not have the RVCT2.2 license under linux, so if you want to compile in the linux environment must use the cygwin. The following were introduced to this are two ways to compile, compile the linux environment is only a little talk about the basic and windows. 1, cmd.exe 1) tools RVDS (RVCT) 2.2.1 BLD593 GNU make GNU awk 3.1.4 or later Perl 5.8.5 or later Python 2.4.3 Note: must be Python2.4.3 Official Download: http://www.python.org/ftp/python/2.3.4/ RVCT installation must be marked with the official 593 patch to work correctly compile, the armcc lay the patch, perform the following to use the patch to compile: cd yourmenu \ ARM \ RVCT \ Programs \ 2.2 \ 593 \ win_32-pentium cp, armcc, the tcc cp armcc armcpp cp armcc tcpp In addition to the Python 2.4.3 must be downloaded separately to install other tools can be packaged download via Cygwin. Cygwin the default version of Python 2.5, you must use the 2.4.3 version to replace it with the default Python will be installed in the Cygwin user / local / bin directory, back / bin directory python.exe usr / local / bin/python2.4.exe renamed python.exe, and will join the PATH c: \ cygwin \ usr \ local \ bin. 2) compile, 3)

First M76XXTSNCJNLYM4725/HY11-VR356-8_4.7.25/AMSS/products/76XX/build / ms, under the natural rvct22.bat inside the environment variables will be modified to the correct value (RVCT and the Cygwin installation directory), and Add Variable ARMTOOLS = RVCT221 2, performed in the cmd.exe M76XXTSNCJNLYM4725/HY11-VR3568_4.7.25/AMSS/products/76XX/build/ms/rvct22.bat 3 to modify M76XXTSNCJNLYM4725/HY11-VR356-8_4.7.25/AMSS/products/76XX/build / ms / TSNCJNLYM.cmd, to remove BUILD_UNIX and USE_BUILD_NATIVELINUX_MODEM these two compile options 4, in the cmd.exe to enter M76XXTSNCJNLYM4725/HY11-VR3568_4.7.25/AMSS/products/76XX/build/ms, the execution TSNCJNLYM.cmd begin to compile the source ARM11 the build / envsetup.sh script analysis Before compile the source code is usually executed in the android source code top-level directory .. / build / envsetup.sh purpose is to use The script envsetup.sh which defines some functions

Vous aimerez peut-être aussi