You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/blog/2020/11/nuttx-getting-started/index.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,8 @@ authors:
10
10
- "eren-terzioglu"
11
11
- "filipe-cavalcanti"
12
12
summary: "This article provides a tutorial to get started with NuttX."
13
+
aliases:
14
+
- /blog/nuttx-getting-started
13
15
---
14
16
15
17
## Introduction to Apache NuttX RTOS
@@ -285,4 +287,4 @@ NuttX is one of the most preferred RTOS for developers familiar with Linux inter
285
287
286
288
---
287
289
288
-
The [original article](https://medium.com/the-esp-journal/getting-started-with-esp32-and-nuttx-fd3e1a3d182c) was published on Medium, on the [ESP Journal](https://medium.com/the-esp-journal). It has since been updated.
290
+
The [original article](https://medium.com/the-esp-journal/getting-started-with-esp32-and-nuttx-fd3e1a3d182c) was published on Medium, on the [ESP Journal](https://medium.com/the-esp-journal). It has since been updated.
Copy file name to clipboardExpand all lines: content/blog/2023/07/core-dump-a-powerful-tool-for-debugging-programs-in-zephyr-with-esp32-boards/index.md
Copy file name to clipboardExpand all lines: content/blog/2024/06/zephyr-max-wifi-throughput/index.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,8 @@ authors:
7
7
- "marcio-ribeiro"
8
8
tags: ["ESP32-S3", "Zephyr", "Wi-Fi"]
9
9
summary: "How to improve the throuput of network applications with Zephyr on Espressif devices."
10
+
aliases:
11
+
- /blog/zephyr-max-wifi-throughput
10
12
---
11
13
12
14
Those who develop IoT applications based on Zephyr OS often need to optimize the communication performance. It can be done by tweaking the Wi-Fi network stack parameters. However, how do you evaluate the resulting changes and find the most suitable configuration? In this article, we will overview a method to optimize communication performance by using the `iperf` and `zperf` tools.
Copy file name to clipboardExpand all lines: content/blog/2024/08/esp32-memory-map-101/index.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,8 @@ showAuthor: false
7
7
authors:
8
8
- "marek-matej"
9
9
aliases:
10
-
- [esp32s-family-memory-map-101]
10
+
- /blog/esp32s-family-memory-map-101
11
+
- /blog/esp32-memory-map-101
11
12
summary: "This article addresses the complexity of Espressif SoCs by offering a visual, structured compilation of crucial technical data from their datasheets and TRMs. The main takeaway for the reader is a simplified, actionable understanding of the memory maps, caches, peripherals, and eFuse blocks, which is essential for low-level system and driver development."
summary: "This article explains the booting process of Espressif devices up to ESP32-C6 (and probably newer devices)."
10
+
aliases:
11
+
- /blog/esp32-bootstrapping
10
12
---
11
13
12
14
Those acquainted with the ESP32 system-on-chip (SoC) family know the complexity involved in analyzing its booting process. From navigating the embedded ROM bootloader, facilitated by comprehensive tooling, to initiating the 2nd stage bootloader, which subsequently launches the user application. The procedure deviates significantly from the the straightforward "jump-to-reset-vector" way of starting the user program, as we can see on the ARM architecture.
@@ -363,7 +365,7 @@ uart:~$
363
365
364
366
### MCUboot Zephyr port (ZP)
365
367
366
-
First lets take a look at how to manually build the MCUboot and the subsequent application. Each `west flash` in the code is using its own flash partition and it is not overwritten by each other.
368
+
First lets take a look at how to manually build the MCUboot and the subsequent application. Each `west flash` in the code is using its own flash partition and it is not overwritten by each other.
367
369
368
370
Building and flashing the MCUboot separately at its location:
369
371
```shell
@@ -525,6 +527,6 @@ The ESP32 port in Zephyr RTOS has variety of booting options.
525
527
## Additional reading
526
528
527
529
-[Zephyr RTOS and ESP32](https://www.zephyrproject.org/zephyr-rtos-on-esp32/)
Copy file name to clipboardExpand all lines: content/blog/2024/10/pytest-testing-with-nuttx/index.md
+14-12Lines changed: 14 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,8 @@ showAuthor: false
7
7
authors:
8
8
- "filipe-cavalcanti"
9
9
summary: "How Pytest is used for testing the NuttX RTOS on Espressif devices."
10
+
aliases:
11
+
- /blog/pytest-testing-with-nuttx
10
12
---
11
13
12
14
## Introduction
@@ -29,7 +31,7 @@ Pytest allows us to set up a test environment and scale tests easily, using fixt
29
31
30
32
Pytest integrates with argparse, enabling us to pass arguments to tests via the command line or by specifying them in an .ini file. These arguments can be accessed by any test case when needed.
31
33
32
-
Another significant advantage of pytest is the large number of available plugins. Pytest provides a standard way to implement [plugins](https://docs.pytest.org/en/stable/reference/plugin_list.html) using its hooks, allowing contributors to share their plugins with the community.
34
+
Another significant advantage of pytest is the large number of available plugins. Pytest provides a standard way to implement [plugins](https://docs.pytest.org/en/stable/reference/plugin_list.html) using its hooks, allowing contributors to share their plugins with the community.
33
35
34
36
## Setting Up the Test Environment
35
37
@@ -47,7 +49,7 @@ To create the virtual environment, use Python's venv tool and create an environm
Next, upgrade pip (Python’s package manager) and install the following packages:
@@ -74,7 +76,7 @@ pytest 8.3.3
74
76
Now, the environment is ready, and we can begin setting up our tests.
75
77
76
78
## Establishing Communication
77
-
79
+
78
80
Before we can test an application, we need to establish working serial communication that we can use in our tests. First, we’ll create a Python class to handle this, and then we’ll explore how pytest can leverage it.
79
81
80
82
## Serial Communication Class
@@ -89,7 +91,7 @@ Our class will be called SerialCommunication and will contain the mandatory init
89
91
The following is what our initialization looks like. The timeout argument is important to avoid locking our serial port in case of a failure where the device is unresponsive. It can also be adjusted on the fly for long test cases.
I have an [ESP32H2 Devkit](https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32h2/esp32-h2-devkitm-1/user_guide.html) connected to my serial port at `/dev/ttyUSB0` and
132
134
running the `nsh` firmware configuration.
133
135
134
-
If you are not familiar with building NuttX, checkout this article on [getting started with NuttX and ESP32](https://developer.espressif.com/blog/nuttx-getting-started/).
136
+
If you are not familiar with building NuttX, checkout this article on [getting started with NuttX and ESP32](https://developer.espressif.com/blog/2020/11/nuttx-getting-started/).
135
137
136
138
Below, we will add a simple main routine to our communication.py file to validate that our communication works by sending the help and uname commands and reading the responses.
So it works. We have the communication basis that allows us to structure our Pytest environment. The same recipe can be followed for communication via telnet, sockets, MQTT, or whatever is needed for the application.
@@ -179,7 +181,7 @@ This first example's conftest.py file will be responsible for one task: creating
Copy file name to clipboardExpand all lines: content/blog/2024/11/using-wokwi-with-nuttx/index.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ In this article, we will examine how the NuttX real-time operating system (RTOS)
13
13
{{< alert icon="eye" >}}
14
14
**Note!**
15
15
16
-
Note: Reviewing this article together with <cite>[NuttX on an emulated ESP32 using QEMU](https://medium.com/@lucassvaz/nuttx-on-an-emulated-esp32-using-qemu-8d8d93d24c63)</cite> article will help the user to distinguish between the two solutions and to determine the most suitable solution for the needs. Additionally, it is recommended to have knowledge of project compilation through the NuttX official documentation and <cite>[Getting Started with NuttX and ESP32](https://developer.espressif.com/blog/nuttx-getting-started/)</cite> article. NuttX project build documentation is available [at this link](https://nuttx.apache.org/docs/latest/).
16
+
Note: Reviewing this article together with <cite>[NuttX on an emulated ESP32 using QEMU](https://medium.com/@lucassvaz/nuttx-on-an-emulated-esp32-using-qemu-8d8d93d24c63)</cite> article will help the user to distinguish between the two solutions and to determine the most suitable solution for the needs. Additionally, it is recommended to have knowledge of project compilation through the NuttX official documentation and <cite>[Getting Started with NuttX and ESP32](https://developer.espressif.com/blog/2020/11/nuttx-getting-started/)</cite> article. NuttX project build documentation is available [at this link](https://nuttx.apache.org/docs/latest/).
17
17
{{< /alert >}}
18
18
19
19
## What is Wokwi?
@@ -226,4 +226,4 @@ In this article, we have seen the features of Wokwi and how it can be used with
Copy file name to clipboardExpand all lines: content/blog/2024/11/zephyr-tracing-and-profiling/index.md
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,6 +8,8 @@ authors:
8
8
- "raffael-rostagno"
9
9
tags: ["ESP32", "Tracing", "Profiling","Zephyr"]
10
10
summary: "This is an introduction to the critical embedded system debugging techniques of tracing and profiling within the Zephyr RTOS. After reading this article, you can use Zephyr's native tracing tools to gain a visual, in-depth understanding of system dynamics, helping to evaluate performance, spot timing issues, and diagnose complex problems like memory leaks or thread interaction glitches."
11
+
aliases:
12
+
- /blog/zephyr-tracing-and-profiling
11
13
---
12
14
13
15
Embedded systems can be quite complex, depending on the architecture, application size and nature. Even for an experienced embedded developer, understanding the interplay of threads, interrupts, and multiple processes that run in a large application can be challenging. We humans are (mostly) visual by nature, and having the means to *visualize* what is happening in a given system can really open up possibilities. Without the right tools we are often in the dark, quite literally.
@@ -268,14 +270,12 @@ Even though these examples may be more applicable to analyzing complex systems,
[5][Percepio TraceRecorder and Stream Ports](https://docs.zephyrproject.org/latest/services/tracing/index.html#percepio-tracerecorder-and-stream-ports)
276
-
[The Microscope for Embedded Code: How Tracealyzer Revealed Our Bug](https://percepio.com/the-microscope-for-embedded-code-how-tracealyzer-revealed-our-bug/)
277
-
[Efficient Firmware Development with Visual Trace Diagnostics](https://percepio.com/percepio-tracealyzer-efficient-firmware-development-with-visual-trace-diagnostics/)
278
-
[Tracealyzer on Zephyr – Examples from AC6](https://percepio.com/tracealyzer-zephyr-examples-ac6/)
[5][Percepio TraceRecorder and Stream Ports](https://docs.zephyrproject.org/latest/services/tracing/index.html#percepio-tracerecorder-and-stream-ports)
278
+
[The Microscope for Embedded Code: How Tracealyzer Revealed Our Bug](https://percepio.com/the-microscope-for-embedded-code-how-tracealyzer-revealed-our-bug/)
279
+
[Efficient Firmware Development with Visual Trace Diagnostics](https://percepio.com/percepio-tracealyzer-efficient-firmware-development-with-visual-trace-diagnostics/)
280
+
[Tracealyzer on Zephyr – Examples from AC6](https://percepio.com/tracealyzer-zephyr-examples-ac6/)
0 commit comments