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