How to write a simple driver in bare metal systems: volatile, memory barrier, critical sections and so on

Started by pozz in comp.arch.embedded7 months ago 55 replies

Even I write software for embedded systems for more than 10 years, there's an argument that from time to time let me think for hours and leave...

Even I write software for embedded systems for more than 10 years, there's an argument that from time to time let me think for hours and leave me with many doubts. Consider a simple embedded system based on a MCU (AVR8 or Cortex-Mx). The software is bare metal, without any OS. The main pattern is the well known mainloop (background code) that is interrupted by ISR. Interrupts are use...


Worst case stack

Started by pozz in comp.arch.embedded8 months ago 4 replies

I found a nice tool[1] on GitHub. I run it on one of my embedded projects and after a couple[2] of fixes, it eventually printed some good...

I found a nice tool[1] on GitHub. I run it on one of my embedded projects and after a couple[2] of fixes, it eventually printed some good output. There were many unresolved functions, mainly from libc, C runtime, interrupts. I defined all of them in .msu, so now in the final output there aren't unresolved functions. Now there's another big problem. Many functions have an unbounded s...


decoupling the ADC reference on 16F15344

Started by Johann Klammer in comp.arch.embedded8 months ago

Hello, I would like to know if there's a way to output the internal adc vref(1.024 or 2.048 V) onto the vref+ pin, to attach an external...

Hello, I would like to know if there's a way to output the internal adc vref(1.024 or 2.048 V) onto the vref+ pin, to attach an external decoupling capacitor. The Datasheet is a bit unclear on this. There's a bit to connect the ext aref pin from adc vref, but I think that just uses vhatever voltage is there externally. (ADPREF in ADCON1). There's also the DAC1OE2 bit in DAC1CON0, but...


Multithreaded disk access

Started by Don Y in comp.arch.embedded8 months ago 22 replies

As a *rough* figure, what would you expect the bandwidth of a disk drive (spinning rust) to do as a function of number of discrete files being...

As a *rough* figure, what would you expect the bandwidth of a disk drive (spinning rust) to do as a function of number of discrete files being accessed, concurrently? E.g., if you can monitor the rough throughput of each stream and sum them, will they sum to 100% of the drive's bandwidth? 90%? 110? etc. [Note that drives have read-ahead and write caches so the speed of the media migh...


Convert 16x2 chars display to big TFT display

Started by pozz in comp.arch.embedded8 months ago 13 replies

I have a CPU board that interfaces to a standard 16x2 chars display, based on HD44780 controller. I'd like to replace this display with a...

I have a CPU board that interfaces to a standard 16x2 chars display, based on HD44780 controller. I'd like to replace this display with a full-color big TFT display, maybe 10", but I can't change the firmware of the CPU (because I don't have the source code and I can't rewrite it, because of cost and time). The simple idea is to create an interface between the current CPU board and t...


Are packed structs slower AND safe?

Started by pozz in comp.arch.embedded8 months ago 4 replies

In one of my projects that run on a Cortex-M0+ MCU, I have a few arrays of structs. Now I need to increase the size of the arrays, but I'm out...

In one of my projects that run on a Cortex-M0+ MCU, I have a few arrays of structs. Now I need to increase the size of the arrays, but I'm out of RAM, so I'm searching for ways to save some space in RAM. One simple way is to pack the structs, for example with __attribute__((packed)) in gcc. I can save some padding bytes (that waste some memory) for each element of the array, so t...


CfC 26th Ada-Europe Int. Conf. Reliable Software Technologies

Started by Dirk Craeynest in comp.arch.embedded8 months ago

----------------------------------------------------------------------- Call for Contributions 26th...

----------------------------------------------------------------------- Call for Contributions 26th Ada-Europe International Conference on Reliable Software Technologies (AEiC 2022) 14-17 June 2022, Ghent, Belgium www.ada-europe.org/conference2022 Organized by Ada-Eu...


Sr Java Backend Developer - Ashburn VA / Piscataway NJ / Alpharetta GA / Dallas TX / Tampa FL

Started by Ram Vardhan in comp.arch.embedded10 months ago

Hi We have an immediate Openings with Our Client for a long term contract position Position #1 Job Title: Sr Java Backend Developer...

Hi We have an immediate Openings with Our Client for a long term contract position Position #1 Job Title: Sr Java Backend Developer Location: Ashburn VA / Piscataway NJ / Alpharetta GA / Dallas TX / Tampa FL Duration: 12 months Skills Required • Senior Java developer with strong technical background • Core Java, Spring boot & Microservice • Da


Stack analysis tool that really work?

Started by pozz in comp.arch.embedded11 months ago 42 replies

arm gcc and Cortex-Mx MCUs embedded systems. Is there a compilation-time (static) tool for stack analysis that really works? The best I...

arm gcc and Cortex-Mx MCUs embedded systems. Is there a compilation-time (static) tool for stack analysis that really works? The best I could find is -fstack-usage and avstack.pl Perl script, but I guess there's another and better way.


Shutdown behavior and flash storage devices

Started by Dave Nadler in comp.arch.embedded11 months ago 14 replies

Hi All - I'm wondering what other folks do about this issue... Consumer flash storage devices (USB memory stick, SD card, etc) have a nice...

Hi All - I'm wondering what other folks do about this issue... Consumer flash storage devices (USB memory stick, SD card, etc) have a nice internal wear-leveling controller. When one does a write operation, lots of sectors may be internally rejiggered to provide uniform wear (so things that are never rewritten from the application point of view are actually moved around and rewritten). T...


Ask a Question to the EmbeddedRelated community

To significantly increase your chances of receiving answers, please make sure to:

  1. Use a meaningful title
  2. Express your question clearly and well
  3. Do not use this forum to promote your product, service or business
  4. Write in clear, grammatical, correctly-spelled language
  5. Do not post content that violates a copyright