|
Abstract:
|
The Global System for Mobile communications (GSM) is currently one of the most important digital cellular phone technologies in the world. Unlike the old analogue systems, GSM phones rely heavily on digital signal processing in their engines. In the Nokia Mobile Phones (NMP) GSM architecture this processing is mostly implemented as software running on a digital signal processor (DSP). The program code has traditionally been hand-crafted assembly for performance and size reasons. This thesis examines the NMP GSM mobile phone DSP software development process from various angles and discussed the problems it poses. Furthermore, two in-house software tools are introduced and evaluated. The NMP DSP hard-ware and software architecture is not a traditional data coprocessor approach but rather like an embedded system. This means that a lot of tasks that are not at all related to signal processing must be performed by the processor. Combined with the use of assembly language, the code development process contains many problematic aspects and possible pitfalls. These are viewed from the perspective of readability, maintainability, testability, performance requirements, size constraints, cost reductions and continuity. The usual code development tools in assembly language environment are assembler, linker, simulator and emulator. To augment these, two special tools were developed: HRA (Human Readable Assembler) and COCO (Control structure Compiler). The former introduces a new type of assembly syntax where most machine instructions, especially those of mathematical nature, are much more readable and intuitive than in the traditional mnemonic format. The latter takes the readability concept even further by implementing high level control structures. Among these are iterative constructs like loop, while, do-while, and conditional statements like if-else and switch-case. After applying these tools to some test cases, they were found to be quite useful, but they were not taken into mainstream code development use. The main reasons were a lack of resources and the almost nonexistent official support from the vendor of the other tools. /Kir10 |