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