I would like to know whether the CPU of the GBA can use any features usually reserved for OSes, and how one can do this.
For instance, I would like to have access to the privileged modes which the cpu apparently supports, but I can not understand how to enter it in the first place(and modify the code to be run by it) , since the gba starts in user mode.
What is more, I would like to know which, if any, of the arm extensions the gba has, such as coprocessor, mmu ,mpu etc.
I have read in the cowbite spec reference that the priviledged modes do exist, but no further mention is made.
Nothing at all special about the GBA, you are in supervisor mode when you start, you dont have to do anything to get there. The same is true for any ARM you are likely to encounter (that is not running an operating system, say linux, and you are a user on that operating system on a command line).
Although the ARM has a user mode with protections you are not like to see that used in embedded applications. certainly not ARM7's (ARMv4/ARMv4T) with no cache, no mmu, and not much coprocessor support like the one in the GBA.
I guess I answered that question, it doesnt have much at all, no mmu, no fpu, it cant remember if it supports any coprocessor instructions. This is true for most ARM7's, most ARMs in general. Think of it this way, if it runs a full blown, non-uclinux, linux like the OMAPs in the beagleboard and the marvells in the open-rd and plug computer and the caviums on other boards, it has an mmu, probably caches, an external memory controller, etc. If it doesnt, if it only runs uclinux or doesnt run a linux at all, then it is more on the embedded end, microcontroller or microcontroller like. The ARM7TDMI in the GBA definitely falls into this category. And the ARM7 and ARM9 on the NDS as well for the most part.
Although I have been recommending the gba for years as a ARM educational platform, times are changing, flash carts are going away, etc. look at the stm32f4 discovery board for $20. (see the stm32f4d repo in my github space) it runs 168mhz, has caches, has an fpu, and dripping with other things that microcontrollers rarely have. Not sure what it is you are looking for but hard to pass up at that price for what you get, sure you dont get buttons and an lcd screen, graphics hardware, etc that you get with the gba...