Тёмный

Building Effective Embedded Systems in C++: Architectural Best Practices - Gili Kamma - CppCon 2023 

CppCon
Подписаться 150 тыс.
Просмотров 9 тыс.
50% 1

cppcon.org/
---
Building Effective Embedded Systems in C++: Architectural Best Practices - Gili Kamma - CppCon 2023
github.com/CppCon/CppCon2023
Embedded development is a complex process that brings together software, electronics, physics, mechanics, and algorithms.
Designing a system with embedded components requires careful consideration of multiple factors.
However, there is a lack of knowledge regarding correct practices in building embedded systems.
In my talk, I will offer valuable insights to enhance the effectiveness of embedded development, focusing on improving robustness, speed, and maintainability.
By addressing the challenges in this field, attendees will gain a deeper understanding of how to design and build embedded systems correctly.
Through practical advice and best practices, I aim to empower developers to overcome obstacles and achieve successful outcomes in their projects.
---
Gili Kamma
Gili Kamma has a B.S.c in electrical engineering from Tel-Aviv University, Israel. With almost 20 years of experience developing embedded systems, she has worked across plenty of technical environments, BSP and low-level drivers in C, C++, Python, C#, Java, DB, and Cloud.
She is an expert in developing embedded systems, gained a lot of knowledge from changing projects and products every year or two for the past 20 years.
She has extensive experience in creating applications from scratch, improving the performance of existing ones, and maintaining products by solving bugs and ensuring quality. She has broad experience in industries such as Automotive, Cyber, IOT, Networking, and Aerospace.
These days, she is the R&D manager at Blitz Electric Motors in Israel.
---
Videos Filmed & Edited by Bash Films: www.BashFilms.com
RU-vid Channel Managed by Digital Medium Ltd: events.digital-medium.co.uk
---
Registration for CppCon: cppcon.org/registration/
#cppcon #cppprogramming #cpp #ُembeddedsystem

Наука

Опубликовано:

 

25 мар 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 27   
@franciscogerardohernandezr4788
@franciscogerardohernandezr4788 3 месяца назад
Wonderful presentation, I consider watching this video should be a mandatory task for the first or second lecture in an embedded systems course.
@TaranovskiAlex
@TaranovskiAlex 3 месяца назад
Thank you for great common sense talk!
@Roibarkan
@Roibarkan 3 месяца назад
Great talk !!!
@MCroppered
@MCroppered 3 месяца назад
Very interesting talk. She is also a fantastic speaker - very good at communicating simply and maintaining engagement.
@nhanNguyen-wo8fy
@nhanNguyen-wo8fy 3 месяца назад
6:25 thread. 12:14 hardware layer seperation. 18:05 network 19:00 29:00 simulator 35:13 43:40
@sanjaygatne1424
@sanjaygatne1424 3 месяца назад
Very useful talk.
@vladimir0rus
@vladimir0rus 3 месяца назад
Thank you for the talk, it is very useful and easy to understand.
@ArtemMelnyk-dm1ip
@ArtemMelnyk-dm1ip 3 месяца назад
Great talk, thanks.
@mudiagaakpokwaye2795
@mudiagaakpokwaye2795 3 месяца назад
Wonderful talk.
@MarekKnapek
@MarekKnapek 3 месяца назад
About the SQLite database on SD card. I would try hard to not use this approach if not necessarily need. Because SD cards tend to degrade quickly and then what ... can the device work without it? Do I need to go to the customer to replace it?
@GiliKamma
@GiliKamma 3 месяца назад
Things are not black or white. The action I took was a necessary requirement at the time. I utilized the resources available to me, as I needed a quick solution for dissatisfied customers. Prior to the changes I made, I had an SD card with SQLite on it. So I didn't need to develop drivers or to do integration. At the end of the day, I performed several tens of writes daily. Therefore, if you do the math, you’ll find that you have more time than the expected hardware lifespan of 7 years.
@MichaFita
@MichaFita 3 месяца назад
You right, but mitigation is using large SD card and wear leveling filesystem. Then replace it regularly.
@vladimir0rus
@vladimir0rus 3 месяца назад
45:00 In a case of monitoring it is better to have metrics/telemetry instead of logs. You need logs for investigation of production issues.
@orhirshfeld
@orhirshfeld 3 месяца назад
very intresting, i work in roobotics and we have similar issues just more complex
@vedantranade1815
@vedantranade1815 3 месяца назад
same! i am looking at you, rosserial!
@azdinator
@azdinator 3 месяца назад
@34:11 : Can somebody explains me how generating 10-50 fake frames simulates the long distance ? The data transmission rate (throughput) theoritically doesn't change based on distance. The amount of data sent in a given time frame would be the same, regardless of whether the distance is short or long. In other words : What are the nuances to consider in long-distance wireless communication that can justify a simulation like the one Miss Kamma is conducting ? The only thing I see is that the latency and propagation time increases. This leads to an increased buffering. But that's not clear to me. I work with wireless communication and never had such a Thing. @community : would you be nice to explain this to me ? Regards
@franciscogerardohernandezr4788
@franciscogerardohernandezr4788 3 месяца назад
I agree, you also need to incluye link and system level simulators which account for the propagation channel, antena, and RF chains. Of course, this demands an HPC setup to properly validate latency and reliability. Not trivial at all. And many companies tend to outsource simulation overseas, which in turno also subcontracts until no one knows exactly whose responsibility is.
@mariushusejacobsen3221
@mariushusejacobsen3221 3 месяца назад
It makes sense if "meter" is not the 'unit of measurement' but a 'measuring device'. In other words, 5000 measuring units reporting to this device, rather than 5km distance.
@azdinator
@azdinator 3 месяца назад
I just don't understand why multiplicated frames simulates sites with long distances.
@GiliKamma
@GiliKamma 3 месяца назад
My aim wasn’t to simulate either long or short distances. My main focus was on simulating the load on the software. I chose to do this through software, as it’s cost-effective and quick. The RF hardware wasn’t the issue, the software was the bottleneck, particularly in managing and transmitting the necessary data. When I simulated the reception of additional frames, it created a load on my software. Instead of managing 300 meters, it had to handle 10,000 meters. As a result, the processes took more time and required more space, proportional to the number of meters involved.
@rikardsoderstrom835
@rikardsoderstrom835 3 месяца назад
If you venture back to 7:26 you will see that the presenter is talking about two things. One is the measuring unit which the presenter refers to as "meters" and it collects measurements in distances in the unit meter. So when the presenter says "built to work with 1000 meters" I honestly believe that it means "built to work with 1000 measuring units". Which, if true, means that when we head back to 34:11 it is essentially just adding more data at the point in time. My assumption is that this simply is a load problem, not a distance problem.
@vladimir0rus
@vladimir0rus 3 месяца назад
38:00 Why do you need any real HW to simulate lots of messages? It should be possible to use SW simulators and integrate them to CI/test pipeline.
@vladimir0rus
@vladimir0rus 3 месяца назад
28:00 What if data will contain a sequence equal to prefix? Or even worse if a part of the header will form such sequence?
@GiliKamma
@GiliKamma 3 месяца назад
@vladimir0rus The concept here is that we identify the start of the message using a prefix. After that, we read the length and then verify that all the content matches the CRC at the end of the message. If the prefix appears in the middle of the message, it doesn’t matter because we only look for the prefix when we start searching for a new message. Let’s consider the worst-case scenario: we don’t see the prefix at the start of the stream, so we go over the byte until we find it. Then, we search for a valid message. If it’s not valid, we discard the prefix we found and start looking for a new message again. The likelihood that it will resemble a valid message but isn’t is pretty rare.
Далее
Что нового в 11.2?
58:32
Просмотров 68 тыс.
Coding Interviews Be Like
5:31
Просмотров 6 млн
Simulating the Evolution of Rock, Paper, Scissors
15:00
ЗАКОПАЛ НОВЫЙ ТЕЛЕФОН!!!🎁😱
0:28
Я УКРАЛ ТЕЛЕФОН В МИЛАНЕ
9:18
Просмотров 116 тыс.