stm32f401 | A set of tools to assist with reverse engineering

 by   darkarnium Python Version: Current License: GPL-2.0

kandi X-RAY | stm32f401 Summary

kandi X-RAY | stm32f401 Summary

stm32f401 is a Python library typically used in Internet of Things (IoT) applications. stm32f401 has no bugs, it has no vulnerabilities, it has a Strong Copyleft License and it has low support. However stm32f401 build file is not available. You can download it from GitHub.

This repository contains a number of helpers for attempting to reverse engineer devices using an STM32F401 microcontroller. Though these tools may work on other STM32 platforms they have not been tested. The main components in this repository are intended to provide helpers for loading firmware dumps into IDA - assisting with patching up a few common issues to assist with getting initial auto-analysis working. In addition, this repository contains a Vagrantfile which will provision a CentOS 8 virtual machine with a patched version of beckus' STM32 qemu fork in order to provide a virtual platform in which dynamic analysis can be performed. As below, this is tested and confirmed working for a device which uses an STM32F401 - though there are some issues currently, as the patch does not completely emulate the device.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              stm32f401 has a low active ecosystem.
              It has 5 star(s) with 0 fork(s). There are 1 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              stm32f401 has no issues reported. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of stm32f401 is current.

            kandi-Quality Quality

              stm32f401 has 0 bugs and 0 code smells.

            kandi-Security Security

              stm32f401 has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              stm32f401 code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              stm32f401 is licensed under the GPL-2.0 License. This license is Strong Copyleft.
              Strong Copyleft licenses enforce sharing, and you can use them when creating open source projects.

            kandi-Reuse Reuse

              stm32f401 releases are not available. You will need to build from source code and install.
              stm32f401 has no build file. You will be need to create the build yourself to build the component from source.
              Installation instructions are not available. Examples and code snippets are available.
              It has 122 lines of code, 6 functions and 1 files.
              It has low code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed stm32f401 and discovered the below as its top functions. This is intended to give you an instant insight into stm32f401 implemented functionality, and help decide if they suit your requirements.
            • Return a list of literal pools
            • Check if a string entry exists
            • Get a dictionary of pseudo instructions
            • Creates a set of string literals
            • Get the Dword value
            • Set the T value of an address
            Get all kandi verified functions for this library.

            stm32f401 Key Features

            No Key Features are available at this moment for stm32f401.

            stm32f401 Examples and Code Snippets

            No Code Snippets are available at this moment for stm32f401.

            Community Discussions

            QUESTION

            Why can't I detect start condition when to bitbang-read/sniff I2C port? stm32
            Asked 2022-Feb-07 at 21:16

            I am trying to bitbang-read or rather sniff an I2C port. I have successful I2C communication between a master I2C device and a Nucleo stm32F401 board. Nucleo slave sending using DMA. Then I am using 2 pins from the same Nucleo to try to sniff the communication. Both of the pins are configured as inuputs with pull-ups.

            I read the pins' value like this:

            ...

            ANSWER

            Answered 2022-Feb-07 at 21:16

            AN I2C start condition is a falling edge of data while clock remains high. To detect it from GPIO you need to do something like:

            Source https://stackoverflow.com/questions/71022672

            QUESTION

            Sending large amount of data from ISR using queues in RTOS
            Asked 2021-Dec-18 at 21:02

            I am working on an STM32F401 MC for audio acquisition and I am trying to send the audio data(384 bytes exactly) from ISR to a task using queues. The frequency of the ISR is too high and hence I believe some data is dropped due to the queue being full. The audio recorded from running the code is noisy. Is there any easier way to send large amounts of data from an ISR to a task?

            The RTOS used is FreeRTOS and the ISR is the DMA callback from the I2S mic peripheral.

            ...

            ANSWER

            Answered 2021-Dec-14 at 12:44

            The general approach in these cases is:

            1. Down-sample the raw data received in the ISR (e.g., save only 1 out of 4 samples)
            2. Accumulate a certain number of samples before sending them in a message to the task

            Source https://stackoverflow.com/questions/70348882

            QUESTION

            Application not loading after DFU:Leave
            Asked 2021-Aug-30 at 08:25

            I am trying to program the STM32F401 flash on our board in DFU mode. I am using the dfu-util tool in my linux computer.For my project requirements the BOOT 0 pin is always kept high throughout the process.

            I am using the following command to flash and jump to application code.

            ...

            ANSWER

            Answered 2021-Aug-30 at 08:25

            I found the issue. I had to uncomment the define USER_VECT_TAB_ADDRESS in the system_stm32f4xx.c file.

            Basically what was happening was that bootloader was looking for a loadable vector address from the flash application. With the USER_VECT_TAB_ADDRESS commented the pointer to the vector address kept pointing to the bootloader vector table effectively crashing the flash application resetting the controller. With the BOOT 0 pin high it kept loading into bootloader with each reset.

            More information about this is available in this similar question: STM32G474 bootloader exit

            Source https://stackoverflow.com/questions/68936466

            QUESTION

            STM32 Reset issues
            Asked 2021-Feb-09 at 19:41

            I've programmed my STM32F401 in C and Rust but am having a problem with assembly.

            • When I initially load the code with a Black Magic Probe, it runs fine
            • When my board powers up or is reset, the code doesn't run.
            • After reset, in GDB, if I try to Continue it, it throws an exception.
            • After reset, in GDB, if I try to Run it, it runs fine

            The actual code in the reset handler is the perennial "blinky". I'm sure there's no problem with the code, this "smells" of some kind of "initialisation issue"?

            • I'm a massive GDB noob, but if I do info registers, PC is always the value I'd expect - 0x8000198
            ...

            ANSWER

            Answered 2021-Feb-09 at 19:41
             8000004:   08000198    .word   0x08000198
            

            Source https://stackoverflow.com/questions/66125552

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install stm32f401

            You can download it from GitHub.
            You can use stm32f401 like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/darkarnium/stm32f401.git

          • CLI

            gh repo clone darkarnium/stm32f401

          • sshUrl

            git@github.com:darkarnium/stm32f401.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link