User Tools

Site Tools


gsoc:2024-gsoc-zephyr

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
gsoc:2024-gsoc-zephyr [2024/01/12 18:37]
till created
gsoc:2024-gsoc-zephyr [2024/02/07 17:23] (current)
kartben
Line 32: Line 32:
 **To be updated** **To be updated**
  
-==== Project #1   HTTP Server Implementation ==== 
- 
-1 contributor full-size (350 hours). 
- 
-Zephyr has historically incorporated the [[https://​github.com/​civetweb/​civetweb|CivetWeb]] embedded HTTP server. However, Zephyr'​s CivetWeb module was [[https://​github.com/​zephyrproject-rtos/​zephyr/​pull/​46061|deprecated]] and subsequently module [[https://​github.com/​zephyrproject-rtos/​zephyr/​pull/​46746|removed]] due to complications of maintaining a fork of a 3rd-party project in an external module. 
- 
-The project has specified many desired features for a new, fully-integrated,​ and in-tree [[https://​github.com/​zephyrproject-rtos/​zephyr/​issues/​46758|replacement for CivetWeb]]. The proposed design will be able to take advantage of Zephyr'​s many existing building blocks. 
- 
-  * [[https://​docs.zephyrproject.org/​latest/​develop/​test/​ztest.html|ZTest Framework]] 
-  * [[https://​docs.zephyrproject.org/​latest/​connectivity/​networking/​api/​http.html|HTTP]],​ [[https://​docs.zephyrproject.org/​latest/​connectivity/​networking/​api/​websocket.html|WebSocket]],​ [[https://​docs.zephyrproject.org/​latest/​services/​misc.html#​json|JSON]],​ and [[https://​github.com/​zephyrproject-rtos/​mbedtls|mbedTLS]] libraries 
-  * [[https://​docs.zephyrproject.org/​latest/​services/​portability/​posix.html|POSIX API]] support for socket, threads, and filesystem operations 
-  * [[https://​docs.zephyrproject.org/​latest/​build/​kconfig/​index.html|Kconfig]] and [[https://​docs.zephyrproject.org/​latest/​build/​cmake/​index.html|Build System]] to fine-tune built-in server options 
-  * [[https://​docs.zephyrproject.org/​latest/​kernel/​iterable_sections/​index.html|Iterable Section]] support, for flexible specification of HTTP services and resources 
- 
-{{ :​gsoc:​gsoc-2023-httpd.png?​400 | HTTP Server Layers}} 
- 
- 
-An API layer diagram of the project is above. The GSoC contributor is responsible for the items shown in Grey. Please see GitHub links for full details. 
- 
-The goal of the GSoC project is the following: 
- 
-  * Prototype the basic HTTP 2.0 server using POSIX APIs (complexity analysis, instrumentation & telemetry, performance benchmarks) 
-  * Port the basic HTTP server to Zephyr (initial Kconfig, tests, samples, documentation) 
-  * Test Plan and Tests to demonstrate 3 mandatory features: REST API, TLS, and Compressed Resources in Memory (CRiMe) 
-  * Test Plan and Tests to demonstrate 1 feature from: JSON support, Filesystem support, Web-based Dashboard, or OAuth 
-  * Generate test coverage reports using the [[https://​docs.zephyrproject.org/​latest/​guides/​test/​ztest.html|Zephyr Test Framework]] 
-  * Demonstrate HTTP server functionality with one of Zephyr'​s many [[https://​docs.zephyrproject.org/​latest/​boards/​index.html|supported boards]] or [[https://​docs.zephyrproject.org/​latest/​guides/​networking/​qemu_user_setup.html|Qemu]] 
- 
-The successful candidate must be able to demonstrate writing a simple socket-based program in C that presents a "​Hello,​ world!"​ web page to the user with a WireShark capture of the network traffic between the client and host. 
- 
-Candidates must ensure that they have made a clear choice which feature they have chosen to implement (JSON support, Filesystem support, Web-based Dashboard, or OAuth) and explain how that feature would benefit the community. 
- 
-Difficulty: High. 
- 
-Mentors: 
-  * Chris Friedt - SWE / ASIC FW at Meta (cfriedt AT meta.com) - POSIX API Maintainer 
-  * Robert Lubos - SWE at Nordic Semiconductor (Robert.lubos AT nordicsemi.no) - Network Subsystem Maintainer 
- 
-Skills that are Required: Zephyr RTOS,​C,​CXX,​Python,​WireShark 
- 
-Code License: Apache 2.0. 
-==== Project #2 Implement a driver for Audio NXP Platform Driver in Zephyr ==== 
- 
-1 contributor full-size (350 hours). 
- 
-[[https://​www.sofproject.org/​|Sound Open Firmware (SOF)]] is an open source audio Digital Signal Processing (DSP) firmware infrastructure and SDK. 
-SOF provides infrastructure,​ real-time control pieces, and audio drivers as a community project. 
-SOF developers have been working on moving from Xtensa OS (XTOS) to Zephyr RTOS as the real-time OS. 
- 
-[[https://​thesofproject.github.io/​latest/​getting_started/​nxp/​sof_imx_user_guide.html?​highlight=imx8|SOF has support for i.MX8QM, i.MX8QXP, i.MX8MP]]. 
- 
-The SOF community has moved the SOF Micro Kernel from XTOS to Zephyr, but still some work to do on the platform drivers. 
- 
-{{ :​gsoc:​sof_with_zephyr.png?​nolink&​600 |}} 
- 
-The scope of this project is to implement a NXP Audio Platform Driver ([[https://​docs.nxp.com/​bundle/​GUID-487B2E69-BB19-42CB-AC38-7EF18C0FE3AE/​page/​GUID-2E331A3D-025C-4016-B086-59DFEE8E7D35.html|SAI]] and/or ESAI) in Zephyr. 
- 
-To achieve that, the contributor must: 
-  * Contribute any necessary improvements back to the Zephyr Project. 
-  * Contribute any necessary improvements back to the SOF. 
- 
-Mentor: 
-  * Iuliana Prodan - iuliana.prodan@nxp.com 
- 
-[[https://​www.youtube.com/​watch?​v=9kPSG5q6gmA|LVC21F 106 Sound Open Firmware meets Zephyr]] ​ 
gsoc/2024-gsoc-zephyr.1705084676.txt.gz · Last modified: 2024/01/12 18:37 by till