I am Embedded Developer (fresher) by profession. I have written firmware (in C and C++) for ARM Cortex-M, PIC, Atmel 8-bit controller. I am aware of the source code management and that's why I used to have Board Specific, Compiler Specific information in different C header files.
I have written firmware for custom boards which had same microcontroller (PIC24F) but their on-board peripherals, debug interface, LEDs, buttons and other stuff keeps on changing across various versions of the boards. So, I used to have a BSP folder which contains header files for each of the board and a top level header file which includes a specific header file based on macros (one macro for each board). Then, a config header files define one macro to enable all the required peripherals, configuration for one specific board.
The BSP header files looks like this:
And the final board specific header file looks like this:
Now, I am working on yocto project and device tree. I am wondering how BSP actually looks like in yocto project and embedded linux. Is it just device tree which contains board specific, SoC specific and may be Core specific information? Or There is something more to it?
I know this question could be considered as TOO BOARD but what I am looking for is a brief overview of the BSP structure in Yocto Project or Embedded Linux. Pointers to specific directors or online links will be really helpful to get started. I have tried google few times but didn't find a concise picture of it. Please help.
Related
The existing project is running well on STM32F0. The code should be converted to Atmel SAMD21.
The code is written in Visual Studio and using the IntelliSense configuration (ARM Paths). Both projects should use the I2C interface. The package which is used is ChibiOS for STM32.
Because I didn't write the code from scratch, Which part should I change in the code or read carefully? In other words, what is common and different in programming 2 different arms?
Do I need to do my own bootstrap (I mean the initialization part) and linker script? What else is needed?
Also, is there any configuration file for arm definition that I should change?
As I should change chibiOS and add the libraries for Atmel, Which library or package is better to use for Atmel SAMD?
Is there any idea or example that is helpful to compare between these
2 arms?
Much appreciated for any helpful suggestion, in advance.
I have this STM32F3 Discovery board, and I'm trying to flash a simple blink program to it. All of the examples I've found have several stm32*.h header files, such as this for an F4 Discovery board tutorial:
#include "stm32f4xx.h"
#include "fm_stm32f4_led.h"
#include "fm_stm32f4_delay.h"
Where and how do I get the header files for my board? (STM32F3) I can't seem to find anything in the datasheet or documentation to point me at where to get them. Also, what would be a good source for examples and learning material?
Firstly you have a STM32F3 discovery board this means that the stm32f4xx.h header is the wrong one. You'll need the stm32f3xx.h. Also tutorials for a F4 microcontroller will need to be interpreted to be useful for a F3. Some features of a F4 are not present on a F3.
You can download the headers/library for the STM32F3 from ST.com using a ST account. The page you linked to contains a section called Embedded Software which contains a link with the text: STM32CubeF3. Following through the redirections you'll get an opportunity to download the library by clicking: Get Software.
This contains a complete project structure for several boards.
You can also download STM32CubeMX. This "is a graphical tool that allows a very easy configuration of STM32 microcontrollers and microprocessors, as well as the generation of the corresponding initialization C code for the Arm® Cortex®-M core or a partial Linux® Device Tree for Arm® Cortex®-A core), through a step-by-step process." It allows you to generate new projects and lets you easily included required (or all) library files.
fm_stm32f4_led.h and fm_stm32f4_delay.h are header files created by RoanFourie and are meant to target a F4 board. I suppose they are not that useful for you.
I can recommend this tutorial from an ex professor of mine. It is targeted at the F0 microcontroller and uses Keil but the general rules still apply. You'll have to figure the ports and pins out for yourself though.
Like Lee Daniel Crocker mentioned all HAL libraries shipped with the STM32Cube initialization code generator. You can download it here:
https://www.st.com/en/development-tools/stm32cubemx.html
Also you can simple download only the HAL library sources: STM32CubeF3, STM32CubeF4
Moreover the header files fm_stm32f4_led and fm_stm32f4_delay are some custom implementations from your tutorial. The associated code is probably this one:
https://github.com/RoanFourie/STM32F4-DISCO-EMBITZ-Blinky/tree/master/STM32F407Disco/LED
Therefore there is no F3 header/source files for this example.
Anyway it should be easily reused or ported for the F3.
I want to use FreeRTOS for PIC32MX120F064H using MPLABX IDE. I tried a lot but couldn't find any simple LED blinking project for this specific microcontroller that I am using. I even tried demo projects given by FreeRTOS but they are for specific microcontrollers and doesn't work with my microcontroller. I only need the project structure (meaning what/how files to include) and a simple LED blinking demo. I know from the FreeRTOS site that we have to include task.c, queue.c and list.c as basic files but I tried everything but no luck. Please somebody help me with this.
The FreeRTOS.org site has a page describing how to convert a demo from one device in an MCU family to another device in the same family. Alternatively have the MPLAB Harmony tool create a FreeRTOS project for your chip.
Ok, to begin with, I am using eclipse and programming in C language. The device I am programming is STM32L476G. I was simulating one of the stm examples(audioRecorder DFSDM) and I wanted to write the results to SD card, mounted on the board. I have imported the FatFs SD card example, which uses RTOS, into the same workspace of the audioRecorder project. I have copied all the files from includes of the FatFs SD card project into the includes of the audioRecorder project and tried to use some of the typical instructions(f_open etc.) but when I try to build, the compiler doesn't recognize these instructions, as if they are not a part of the project. I am not such a skilled user of eclipse, therefore I believe that I am doing something wrong in the procedure or I am missing some steps. Any advice is much appreciated. enter image description here
main.c must include the .h file(s) that define f_open(), FA_READ, and FR_OK.
I look for an open source RTSP/RTP stack with C language because I want to connect from a micro-controller to media servers to play internet radio stations
live555 is an open source project which contains RTSP/RTP stack, implemented in C++.
So you may need to encapsulates a C interface to it.
A number of open source clients for RTSP/RTP exist such as mplayer, xine, gstreamer, vlc, etc. -- all of them have client code for RTSP/RTP within them.
Here's a webradio project that runs on ARM Cortex-M3 platforms and includes RTSP Shoutcast/Icecast functionalty. It looks like they wrote their own stack. I'm not sure how portable it might be. It looks like it's maybe at least minimally abstracted from the StellarisWare drivers they're using. It's under the New BSD License as well.