Software AreasOfWork » History » Version 11
Anonymous, 02/19/2016 10:49 PM
1 | 4 | laforge | = Areas of Work = |
---|---|---|---|
2 | This page lists the various areas of the project that require some work, and who (if at all) is |
||
3 | working on fixing it. |
||
4 | 1 | laforge | |
5 | == Infrastructure == |
||
6 | |||
7 | === Build System === |
||
8 | * we need a clean/known base as a compiler |
||
9 | 4 | laforge | * At the moment, we're mostly using the 4.0.2 release from gnuarm.com, which is fairly old |
10 | * independence of system-provided header files |
||
11 | * We should be mostly there now. But testing this and verifying our independence of system headers would be great |
||
12 | 1 | laforge | |
13 | === Operating System === |
||
14 | 4 | laforge | * Decide which RTOS to use on the Calypso |
15 | 10 | laforge | * we don't want to use FreeRTOS because... |
16 | 4 | laforge | * OS should have clear abstraction of core (ARM7TDM), SoC and board level features |
17 | * OS should cleanly compile to a library that we can link with all our other code |
||
18 | 1 | laforge | * While we only work on the GSM stack, no OS is needed. But as soon as UI comes around, that changes. |
19 | 10 | laforge | * Some of the potential choices could be |
20 | 11 | laforge | * uKOS-II http://www.ukos.ch/ |
21 | * Erika OSEK/VDX http://erika.tuxfamily.org/wiki/index.php?title=Main_Page |
||
22 | * ChibiOS/Nil http://www.chibios.org/dokuwiki/doku.php |
||
23 | 1 | laforge | |
24 | === Development Tools === |
||
25 | * try to make JTAG (C155) work with OpenOCD |
||
26 | 7 | steve-m | * steve-m made some experiments, but halting the ARM core only seems to be possible via the undocumented ICEPick unit |
27 | 9 | steve-m | * works now, required sniffing the TI CCS debugger, [wiki:'Hardware/Calypso#JTAGInterface' see here]. |
28 | 1 | laforge | |
29 | == Host Software == |
||
30 | 8 | laforge | * osmocon support for the native ROM loader in the Calypso, the [wiki:Hardware/CalypsoRomloader], like it is found on most non-Compal phones |
31 | 6 | steve-m | * "non-secure" variant (done, steve-m) |
32 | * "secure variant" on Calypso/Calypso plus (basic reverse engineering done) |
||
33 | 1 | laforge | |
34 | == Target Software == |
||
35 | |||
36 | === Drivers === |
||
37 | * charger detection, battery charging (roh) |
||
38 | * SIM card reader (dexter) |
||
39 | 7 | steve-m | * Color display driver for C155 (done, steve-m) |
40 | 1 | laforge | * backlight driver |
41 | * vibrator driver |
||
42 | 4 | laforge | * buzzer driver for C123 |
43 | * C155 ringtone chip driver for SPMA100 chip |
||
44 | 1 | laforge | * Fix the I2C driver to use the b/w LCD without any sleep/delay loops |
45 | 7 | steve-m | * done (sigwinch) |
46 | 1 | laforge | |
47 | === GSM Stuff === |
||
48 | * TRF6151, TPU, TSP, AGC, AFC (laforge) |
||
49 | 2 | laforge | * Layer1, particularly the synchronous part (laforge, spaar) |
50 | 4 | laforge | * Layer2 (zecke, laforge) |
51 | * Layer3 (eversberg) |
||
52 | * Playing with the Voice part using the dsp misc task (spaar?) |
||
53 | 1 | laforge | |
54 | 3 | laforge | === General Infrastructure === |
55 | 5 | laforge | * Flash-based log-structured filesystem (prom) |
56 | 1 | laforge | |
57 | === Bootloader === |
||
58 | * Put together a bootloader (prom) |
||
59 | * Define linkage situations (prom) |
||
60 | |||
61 | === UI related === |
||
62 | * proportional fonts in at least two sizes, as small as possible |
||
63 | 4 | laforge | * monospaced fonts waste too much scarce screen real estate |
64 | 3 | laforge | * cache the frame buffer in RAM and sync when needed |
65 | 4 | laforge | * once we have a scheduler and tasks, run screen refresh as low-priority task |
66 | 3 | laforge | * hardware independent API to support C123, C155 (and later other) displays |
67 | 4 | laforge | * software should not care if it is using color or b/w display |
68 | * some kind of fixed screen layout masks, where |
||
69 | * a data structure defines a screen mask |
||
70 | * the application can easily update the content without having to deal with formatting/positioning |
||
71 | * UI widgets like |
||
72 | * lists that can be scrolled through |
||
73 | * menus build of a tree of such lists |