|
3 | 3 | Community and developer guidelines
|
4 | 4 | ==================================
|
5 | 5 |
|
6 |
| -To make referencing easier, rules and guidelines (if present) are numbered inside section. |
7 |
| - |
8 | 6 | .. _theCore_Roadmap:
|
9 | 7 |
|
10 | 8 | Roadmap
|
11 | 9 | -------
|
12 | 10 |
|
13 |
| -.. note:: This section is under construction. |
| 11 | +theCore aims to provide a rich and consistent embedded environment for a range |
| 12 | +of different devices. Such complexity requires from users an advanced knowledge |
| 13 | +of build tools, toolchains and a board layout even in simple cases like a LED |
| 14 | +blinking. |
| 15 | + |
| 16 | +Thus the main milestones are directed to improve the initial user experience. |
| 17 | +Such goals are: |
| 18 | + |
| 19 | +* Provide all-in-one scripts for controlling a development flow, similar to |
| 20 | + what ``mbed_cli`` does. |
| 21 | + |
| 22 | + These scripts must be able to: |
| 23 | + |
| 24 | + * Download required theCore revision. |
| 25 | + * Initialize development environment, by optionally installing and running Nix. |
| 26 | + * Detect and inform about missing dependencies. |
| 27 | + * Bootstrap a new project based on theCore, optionally using one of |
| 28 | + supported boards as a base. |
| 29 | + * Launch a project build. |
| 30 | + * Detect connected devices and be able to flash a project binary. |
| 31 | + * Provide a ncurses-like (at least) interface to configure the project settings, |
| 32 | + that otherwise will require a manual editing of a target JSON file. |
| 33 | + |
| 34 | +* Make theCore IoT-ready. |
| 35 | + |
| 36 | + It is not a surprise that a modern embedded project must include a some |
| 37 | + kind of connectivity support. Most required technologies that missing in |
| 38 | + theCore are: |
| 39 | + |
| 40 | + * lwIP integration. |
| 41 | + * MQTT/COAP libraries. |
| 42 | + * ESP8266 support (as external modem at least). |
| 43 | + * Ethernet/WiFi drivers. |
| 44 | + |
| 45 | +* Add more multi-target examples where possible. |
| 46 | + |
| 47 | + Much of theCore's API is portable. Examples should demonstrate an usage of |
| 48 | + many development boards with the same application code. |
| 49 | + Existing examples should be also converted to support many boards. |
| 50 | + |
| 51 | +* Complete support for at least one development board for each supported platform. |
| 52 | + |
| 53 | + Support for a dev board includes: |
| 54 | + |
| 55 | + * Drivers for each device soldered on the board. |
| 56 | + * Periphery drivers (SPI, UART, I2C, etc.) that are required by the devices, |
| 57 | + soldered on the board. |
| 58 | + * A default JSON file that provides a base clock, periphery and external |
| 59 | + devices configuration. User can change that JSON file to suit his needs. |
| 60 | + * Platform and device capabiilities - similar to what ``Kconfig`` |
| 61 | + in Linux does. |
14 | 62 |
|
15 | 63 | .. _theCore_Branching:
|
16 | 64 |
|
|
0 commit comments