sdk-ng
STM32CubeF4
sdk-ng | STM32CubeF4 | |
---|---|---|
4 | 10 | |
159 | 796 | |
3.1% | 2.9% | |
8.0 | 6.5 | |
5 days ago | about 21 hours ago | |
C | C | |
Apache License 2.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sdk-ng
-
Need help getting Zephyr RTOS native_posix target working from an x86_64 host
# Basic configuration for Zephyr development. { pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/refs/tags/23.05.tar.gz") { } }: let pp = pkgs.python3.pkgs; imgtool = pp.buildPythonPackage rec { version = "1.10.0"; pname = "imgtool"; src = pp.fetchPypi { inherit pname version; sha256 = "sha256-A7NOdZNKw9lufEK2vK8Rzq9PRT98bybBfXJr0YMQS0A="; }; propagatedBuildInputs = with pp; [ cbor2 click intelhex cryptography ]; doCheck = false; pythonImportsCheck = [ "imgtool" ]; }; python-packages = pkgs.python3.withPackages (p: with p; [ autopep8 pyelftools pyyaml pykwalify canopen packaging progress psutil anytree intelhex west imgtool cryptography intelhex click cbor2 # For mcuboot CI toml # For twister tabulate ply # For TFM pyasn1 graphviz jinja2 requests beautifulsoup4 # These are here because pip stupidly keeps trying to install # these in /nix/store. wcwidth sortedcontainers ]); # Build the Zephyr SDK as a nix package. new-zephyr-sdk-pkg = { stdenv , fetchurl , which , python38 , wget , file , cmake , libusb , autoPatchelfHook }: let version = "0.15.0"; arch = "arm"; sdk = fetchurl { url = "https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${version}/zephyr-sdk-${version}_linux-x86_64_minimal.tar.gz"; hash = "sha256-dn+7HVBtvDs2EyXSLMb12Q+Q26+x6HYyPP69QdLKka8="; }; armToolchain = fetchurl { url = "https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${version}/toolchain_linux-x86_64_arm-zephyr-eabi.tar.gz"; hash = "sha256-B7YIZEyuqE+XNI7IWnN6WiC1k9UdFEt4YN4Yr7Vn3Po="; }; in stdenv.mkDerivation { name = "zephyr-sdk"; inherit version; srcs = [ sdk armToolchain ]; srcRoot = "."; nativeBuildInputs = [ which wget file python38 autoPatchelfHook cmake libusb ]; phases = [ "installPhase" "fixupPhase" ]; installPhase = '' runHook preInstall echo out=$out mkdir -p $out set $srcs tar -xf $1 -C $out --strip-components=1 tar -xf $2 -C $out (cd $out; bash ./setup.sh -h) rm $out/zephyr-sdk-x86_64-hosttools-standalone-0.9.sh runHook postInstall ''; }; zephyr-sdk = pkgs.callPackage new-zephyr-sdk-pkg { }; packages = with pkgs; [ # Tools for building the languages we are using llvmPackages_16.clang-unwrapped # Newer than base clang gnat zig zls rustup glibc_multi # Dependencies of the Zephyr build system. (python-packages) cmake ninja gperf python3 ccache dtc gmp.dev zephyr-sdk ]; in pkgs.mkShell { nativeBuildInputs = packages; # For Zephyr work, we need to initialize some environment variables, # and then invoke the zephyr setup script. shellHook = '' export ZEPHYR_SDK_INSTALL_DIR=${zephyr-sdk} export PATH=$PATH:${zephyr-sdk}/arm-zephyr-eabi/bin export VIA_WORKSPACE_PATH="$(realpath ./workspace/)" source ./workspace/zephyr/zephyr-env.sh ''; }
-
Dev environment
I just get the cross compile tools from ARM : https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads ... or zephyr : https://github.com/zephyrproject-rtos/sdk-ng/releases
-
How do I "replicate" an IDE like the Keil uVision or the TI CCS using Visual Studio Code?
There are free gcc based cross tools (compilers, debuggers, emulators) for a lot of MCUs (ARM, MIPS, riscv, etc).
-
When you talk about compilers does each processor have its own compiler for it? Say I am compiling a code a C code for the ESP32 and compiling a C code for the Arduino, will the compiler will be with respect to the C standard being used ( e.g. C89, C11 ) or is the compiler unique to the processor?
Eg: Zephyr OS can use the https://github.com/zephyrproject-rtos/sdk-ng toolchain, which is built for arm, riscv, mips targets.
STM32CubeF4
-
ARM vector table & address space question
2b. I think the more interesting thing for you to look at is the linker script (example). This tells the linker where to put sections (data, bss, rodata, etc). Here you can see where exactly the isr_vector goes and the section it comes from
-
Would Vale count as a low-level language?
Most chip vendors offer a "HAL" or hardware abstraction layer, which is basically a set of functions and defines that does all of this low level stuff. Here's an example of one for STM32F4 chips. The CMSIS folder contains code that is common to most ARM Cortex-M devices, and the STM32F4xx_HAL_Driver folder contains the actual HAL. And here's an example of a startup script and a linker script.
-
to HAL or not to HAL - THE definitive answer
St HAL had and still have huge issues, there is no repo for the code, so you need to download the zip, and for a long time there was not even a issue tracker, I had many time issues and found out someone on the forum reporting the problem. Now at least we have issue tracker, but that made mode clear there are some interesting decision, like missing volatile and no plan to fix it: https://github.com/STMicroelectronics/STM32CubeL4/issues/30 https://github.com/STMicroelectronics/STM32CubeF4/issues/10
-
cubeide
Download the firmware package for your series. Here is the F4 series. Look under the "projects" folder.
-
How do I "replicate" an IDE like the Keil uVision or the TI CCS using Visual Studio Code?
Lastly, and I think these were the hardest things to find when I was transitioning away from Keil, is all of the vendor-specific and compiler-specific “glue” like startup files and linker scripts. For example, STM32F4 startup, system config, and linker scripts can be found here for various MCUs
-
Help with company culture towards compiler warnings
There's an open issue if you're interested in tracking progress on it.
-
Love and hate of ST HAL / pointer to volatile correctness
This 1.5Y old ticket proves the point https://github.com/STMicroelectronics/STM32CubeF4/issues/10 (do not hesitate to upvote this one as everybody agrees it needs to be modified).
-
What is the pre-installed program that comes with my STM32F429 Discovery board?
I think this would be the preinstalled program: https://github.com/STMicroelectronics/STM32CubeF4/tree/master/Projects/STM32F429I-Discovery/Demonstrations/TouchGFX
-
Why is it so difficult to develop USB using HAL libraries
That's where I would begin for building new projects for interfaces and peripherals I don't already know well. However when you are just starting out with something, it can be even easier to modify a working example. Here's a source for official ST USB examples on STM32F4 MCUs: https://github.com/STMicroelectronics/STM32CubeF4/tree/master/Projects/STM32446E_EVAL/Applications/USB_Device
-
What is a good comment header template where to put author, title of the source and date?
Clone STMCube repo https://github.com/STMicroelectronics/STM32CubeF4
What are some alternatives?
gdb-dashboard - Modular visual interface for GDB in Python
STM32CubeF3 - STM32Cube MCU Full Package for the STM32F3 series - (HAL + LL Drivers, CMSIS Core, CMSIS Device, MW libraries plus a set of Projects running on all boards provided by ST (Nucleo, Evaluation and Discovery Kits))
C++ REST SDK - The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services.
Gitea - Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD
openapi-generator - OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)
STM32CubeF7 - STM32Cube MCU Full Package for the STM32F7 series - (HAL + LL Drivers, CMSIS Core, CMSIS Device, MW libraries plus a set of Projects running on all boards provided by ST (Nucleo, Evaluation and Discovery Kits))
Abstract - neovim as an IDE
STM32CubeL4 - STM32Cube MCU Full Package for the STM32L4 series - (HAL + LL Drivers, CMSIS Core, CMSIS Device, MW libraries plus a set of Projects running on all boards provided by ST (Nucleo, Evaluation and Discovery Kits))