TI E2E support forums
TI E2E support forums
  • User
  • Site
  • Search
  • User
  • E2E™ design support >
  • Forums
    • Amplifiers
    • API solutions
    • Audio
    • Clock & timing
    • Data converters
    • DLP® products
    • Interface
    • Isolation
    • Logic
    • Microcontrollers
    • Motor drivers
    • Power management
    • Processors
    • RF & microwave
    • Sensors
    • Site support
    • Switches & multiplexers
    • Tools
    • Wireless connectivity
    • Archived forums
    • Archived groups
  • Technical articles
  • TI training
    • Tech days
    • Online training
    • Live events
    • Power Supply Design Seminar
  • Getting started
  • 简体中文
  • More
  • Cancel
Arm-based microcontrollers

Arm-based microcontrollers

Arm-based microcontrollers forum

  • Mentions
  • Tags
  • More
  • Cancel
  • Ask a new question
  • Ask a new question
  • Cancel
  • Threads 49391 Discussions
Texas Instruments (TI) Microcontrollers support forum is an extensive online knowledge base where millions of technical questions and solutions are available 24/7. You can search for content on other microcontrollers or ask technical support questions on the extensive portfolio of microcontrollers. Find the right solution for your circuit design challenges by using our TI E2E™ support forums that are supported by thousands of contributing TI experts.
Frequent questions
    • 10/28/2025
    • Nilabh Anand

    [FAQ] AM2612: Zephyr

    Part Number: AM2612

     Loudspeaker Announcement: Zephyr RTOS Pre-release available on the AM261x SoC!

    We’re excited to announce that preliminary support for Zephyr RTOS is now available on Athe M261x microcontroller. This integration unlocks a modern, highly scalable, open-source operating system for developers building industrial networking and real-time applications on the AM261x platform.

    ---

     Dart Why Zephyr on AM261x?

    Benefit What it means for you
    Low‑Latency Real‑Time Performance Deterministic scheduling and submillisecond interrupt latency for time‑critical workloads
    Modular Architecture Pull in only the kernel features you need, keeping binary size minimal (as low as a few KB)
    Device‑Tree‑Driven Configuration Simplifies board bring‑up and peripheral enablement with a single source of truth
    Extensive Community & Vendor Ecosystem Leverage a growing library of drivers, middleware, and sample applications

     Rocket Getting Started

    1. Toolchain Setup


    - Install the Zephyr SDK (v0.16.1 or newer).
    - Use the recommended GCC‑Arm Embedded toolchain (`arm-none-eabi-gcc >= 10.3`).

    2. Clone the Zephyr fork from TI Github

    west init -m https://github.com/TexasInstruments/zephyr/tree/am261x/release zephyrproject
    cd zephyrproject
    west update


    3. **Select the AM261x LP**

    Zephyr now ships a ready‑to‑use board definition: `am261x_lp`

    
    west build -b am261x_lp samples/hello_world
    

    4. **Flash the Image**

    Use existing tools like TI Uniflash GUI tool to flash the image. Steps here
    More info - Link

    5. Debugging


    It is recommended to use CCS for flashing & debugging binary.the image. Steps here 

    More info - Link

    6. The key enablement in the first release

    Launch Pad support for AM261x
    R5F (arch) support for interrupts, Cache, MPU configs
    IOMUX controls via pinctrl
    Systick support with RTI as Tickless Kernel enablement
    MBox Driver enabled in compatibility with IPC notify Layer
    UART, GPIO Peripheral Support

     Books Resources

    Resource Links
    Zephyr RTOS Documentation https://docs.zephyrproject.org
    AM261x Hardware Reference www.example.com/.../hwref
    Getting Started Guide (PDF) www.example.com/.../zephyr‑quick‑start.pdf 
    Community Forum forum.zephyrproject.org/.../am261x
    Sample Repository github.com/.../am261x-zephyr-samples

     Handshake Support & Feedback

    - Technical Support: Open a ticket in E2E forum (Tags “Zephyr – AM261x”).
    - Community Contributions: Pull requests adding drivers, board configurations, or sample applications are always welcome!

    ---

     Tada Let’s Build the Future Together!

    The AM261x series now has the power and flexibility of Zephyr RTOS at its fingertips. Whether you’re prototyping a Motor Controller or a small robot, Zephyr gives you a modern, open‑source foundation to accelerate development.

    Happy coding!

    The AM261x & Zephyr Integration Team

    Arm-based microcontrollers forum Arm-based microcontrollers
    • 10/28/2025
    • Nilabh Anand

    [FAQ] AM2612: How to run Profinet Example on AM261x

    Part Number: AM2612

    Step-by-Step Guide to running profinet example on LP-AM261x.

    Requirements:

    1. IND COMMS SDK

    2. CCS

    3. Compiler

    4. Syscfg

    5. Uniflash GUI

    6. Python and OpenSSL

    7. LP-AM261x

    Make sure you have installed above requirements. Follow the links/steps below for setting up tools:

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM261X/10_02_00_15/exports/docs/api_guide_am261x/SDK_DOWNLOAD_PAGE.html

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM261X/10_02_00_15/exports/docs/api_guide_am261x/CCS_SETUP_PAGE.html

    Install all requirements mentioned in requirements.txt (Location - ind_comms_sdk/mcu_plus_sdk/requirements.txt)

    /*Navigate to mcu_plus_sdk folder and then run the following command*/
    pip install -r requirements.txt

    Steps to run the Profinet example:

    Overview- The Profinet demo on AM261x-LP supports execution from external flash i.e XIP. So to properly run the example we need to program the sbl_ospi_mcelf and application image(.mcelf) into flash using Uniflash tool, then set boot mode to OSPI, and then we can see successful run logs. Follow the below steps:

    1. Open CCS and import the Profinet example in project explorer

    2. Build the project and make sure profinet_device_demo_am261x-lp_r5fss0-0_freertos_ti-arm-clang.mcelf and mcelf_xip image  is generated correctly, see the success log below. If there are any error see this post.
    [172] Boot multi-core ELF image: am261x:r5fss0-0:freertos:ti-arm-clang C:/Users/a0492123/workspace_ccstheia/profinet_device_demo_am261x-lp_r5fss0-0_freertos_ti-arm-clang/Release/profinet_device_demo_am261x-lp_r5fss0-0_freertos_ti-arm-clang.mcelf ...
    [173]python C:/ti/ind_comms_sdk_am261x_10_02_00_15/mcu_plus_sdk/tools/boot/multicore-elf/genimage.py --core-img=0:Release/profinet_device_demo_am261x-lp_r5fss0-0_freertos_ti-arm-clang.out --output=C:/Users/a0492123/workspace_ccstheia/profinet_device_demo_am261x-lp_r5fss0-0_freertos_ti-arm-clang/Release/profinet_device_demo_am261x-lp_r5fss0-0_freertos_ti-arm-clang.mcelf --merge-segments=true --tolerance-limit=0 --ignore-context=false --xip=0x60000000:0x68000000 --xlat=none --max-segment-size=8192
    [174] Boot multi-core ELF image: C:/Users/a0492123/workspace_ccstheia/profinet_device_demo_am261x-lp_r5fss0-0_freertos_ti-arm-clang/Release/profinet_device_demo_am261x-lp_r5fss0-0_freertos_ti-arm-clang.mcelf Done !!!
    [175] .
    [176] Boot image: am261x:r5fss0-0:freertos:ti-arm-clang C:/Users/a0492123/workspace_ccstheia/profinet_device_demo_am261x-lp_r5fss0-0_freertos_ti-arm-clang/Release/profinet_device_demo_am261x-lp_r5fss0-0_freertos_ti-arm-clang.appimage Done !!!
    [177] .

    3. Take LP-AM261x, put it in dev boot mode. Then, open the Uniflash GUI tool and select 

    SBL - sbl_ospi_mcelf (location - ind_comms_sdk/mcu_plus_sdk/tools/boot/sbl_prebuilt/am261x-lp)

    Application profinet_device_demo_am261x-lp_r5fss0-0_freertos_ti-arm-clang.mcelf (location - CCS workspace)

    XIP Image - profinet_device_demo_am261x-lp_r5fss0-0_freertos_ti-arm-clang.mcelf_xip ((location - CCS workspace)

    Click on load image.

    4. After loading is successful. Disconnect the power cable and Change the boot mode pins to OSPI Boot mode

    5. Next power on the device and open the UART COM port to see success log of Profinet example:

    Connect to PLC: https://software-dl.ti.com/processor-industrial-sw/esd/ind_comms_sdk/am261x/latest/docs/am261x/profinet_device/create_TIA_project.html
    software-dl.ti.com/.../pnd_app.html
    LP User guide - www.ti.com/.../sprujf1a.pdf
    Arm-based microcontrollers forum Arm-based microcontrollers
    • 10/24/2025
    • Ethan Cope

    [FAQ] AM2612: "No Module Named Construct" on clean install / build of SDK example

    Part Number: AM2612

    Hi ASM team, 

    I get the following error after trying to build a simple GPIO toggle program on a clean install of the 10_02_00_15 SDK. Have we seen this before?  image.png

    All the best,

    Ethan Cope

    Arm-based microcontrollers forum Arm-based microcontrollers
    • 9/30/2025
    • Shaunak Deshpande

    [FAQ] MCU-PLUS-SDK-AM263X: SBL QSPI ENET missing python file "enet_uniflash.py"

    Part Number: MCU-PLUS-SDK-AM263X

    Tool/software:

    Hi TI experts,

    I'm trying to run the sbl_qspi_enet application on AM263x. I see that the documentation (software-dl.ti.com/.../EXAMPLES_DRIVERS_SBL_QSPI_ENET_AM263X.html) mentions about the "enet_uniflash.py" file, which should be present in mcu_plus_sdk/tools/boot folder. I don't see any such file in the v10.02 and v11.0 SDK. Can you please help find the file.

    Thanks

    Arm-based microcontrollers forum Arm-based microcontrollers
    • 9/22/2025
    • Gary Gao

    [FAQ] MSPM0C1104: How to do factory reset with J-Link

    Part Number: MSPM0C1104

    Tool/software:

    Here provide an script to do factory reset with J-Link, there is an readme file to show you how to do it. Important thing is remember to modify the device in open factory_reset.bat and connect the reset pin with J-link.

    3678.Factoryreset_Jlink.zip

    Arm-based microcontrollers forum Arm-based microcontrollers
    • 9/4/2025
    • Shaunak Deshpande

    [FAQ] LP-AM261: Resolving AM26x XDS110/JTAG issues: XDS110 / JTAG Debugger error: Unable to Access DAP (Error -1170), "Test Connection" Fails with SC_ERR_PATH_BROKEN

    Part Number: LP-AM261

    Tool/software:

    Hi TI experts,

    I am using TI AM26x MCUs and trying to connect the board to my PC. When I try to connect to a CPU in CCS target configuration & debug window, I see the following error codes in the console:  

    CS_DAP_0: Error connecting to the target: (Error -1170 @ 0x0) Unable to access the DAP. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package xx.xx.xx.xx)
     
    -----[An error has occurred and this utility has aborted]----
     
    This error is generated by TI's USCIF driver or utilities.
     
    The value is '-233' (0xffffff17).
    The title is 'SC_ERR_PATH_BROKEN'.
     
    The explanation is:
    The JTAG IR and DR scan-paths cannot circulate bits, they may be broken.
    An attempt to scan the JTAG scan-path has failed.
    The target's JTAG scan-path appears to be broken
    with a stuck-at-ones or stuck-at-zero fault.

    Can you please help me resolve the error?

    Arm-based microcontrollers forum Arm-based microcontrollers
    • 9/2/2025
    • Gary Gao

    [FAQ] MSPM0L1306: BSL_GUI_EXE update

    Part Number: MSPM0L1306

    Tool/software:

    This thread just for update the BSL_GUI_EXE. Due to some software release limitation, we can't put the MSPM0_BSL_GUI.exe file into our SDK < …\mspm0_sdk_xxxx\tools\bsl\BSL_GUI_EXE >.

    It need customer use the source file to generate the MSPM0_BSL_GUI.exe with the open source file in the folder BSL_GUI_source_code. More details please refer to README file. But it need to install some python and some support packages environment that may block some users. Here I will put the MSPM0_BSL_GUI.exe file here and you just need to download and unzip

    2480.BSL_GUI_EXE.zip

    Arm-based microcontrollers forum Arm-based microcontrollers
    • 8/22/2025
    • Dennis Lambe

    [FAQ] RM44L520: Building HALCoGen-generated code with Clang (Issues, successful workarounds, proposed upstream fixes)

    Part Number: RM44L520

    Tool/software:

    I have been using Clang/LLVM, specifically ARM's ATfE distribution, to compile HALCoGen-generated code. It mostly works great, but there are a few issues that have to be worked around. I'm documenting them here in case anybody else finds it useful, and in case the engineers at TI want to fix these issues in a future version. In all cases I think these changes are all compatible with GCC, armcl, and armclang, and in most cases fix reliance on undefined behaviors deprecated instructions.

    Pre-UAL assembly instructions in sys_core.s

    I get these two assembler errors multiple times in sys_core.s:

    fmxr error: invalid instruction
    fmdrr error: invalid instruction

    Root cause:

    • LLVM's assembler only recognizes UAL syntax https://reviews.llvm.org/D39196
    • fmxr and fmdrr are deprecated, pre-UAL mnemonics https://developer.arm.com/documentation/ddi0403/d/Appendices/Legacy-Instruction-Mnemonics/Pre-UAL-floating-point-instruction-mnemonics?utm_source=chatgpt.com

    Workaround:

    Assemble with -x assembler-with-cpp -Dfmxr=vmsr -Dfmdrr=vmov

    Proposed upstream fix:

    Find/replace in sys_core.s template(s): fmxr to vmsr, fmdrr to vmov

    (Note: this issue also affects FreeRTOS portasm.s)

    sys_core.s uses FP instructions but doesn't specify an FPU type

    Once the above Pre-UAL instructions are fixed, I get the next set of errors on the same lines as in the previous issue:

    vmsr error: instruction requires: VFP2
    vmov error: instruction requires: fp registers

    Root cause:

    When the LLVM assembler encounters a .cpu directive, it ignores any -mcpu= or -mfp= flags specified on the command line.

    Workaround:

    Assemble with -x assembler-with-cpp -Dcpu=extern

    This works by replacing the .cpu directive with a .extern directive, which doesn't wind up having any effect on the generated code since no symbol cortex-r4 exists in the project. The assembler then falls back on the command-line -mcpu= or -mfp= flags.

    Proposed upstream fix:

    Add a .fpu directive such as the following to the sys_core.s template(s):

    .fpu vfpv3-d16

    (Note: this issue also affects FreeRTOS portasm.s)

    Non-ASM statement in naked function _c_int00

    Compiling sys_startup.c results in the following error:

    error: non-ASM statement in naked function is not supported
    102 |     _coreInitRegisters_();

    Root cause:

    _c_int00 has the naked attribute, but contains statements other than basic asm statements. This is undefined behavior in GCC. GCC's manual (https://gcc.gnu.org/onlinedocs/gcc/ARM-Function-Attributes.html#index-naked-function-attribute_002c-ARM) says:

    Only basic asm statements can safely be included in naked functions. While using extended asm or a mixture of basic asm and C code may appear to work, they cannot be depended upon to work reliably and are not supported.

    However, GCC doesn't attempt to prevent this unsupported usage. Clang enforces the requirement that naked functions only contain basic asm statements.

    Fortunately, _c_int00 can be made into a non-naked C function with noreturn if _coreInitRegisters_ and _coreInitStackPointer_ are called before it is entered.

    Workaround option 1:

    Modify sys_startup.c USER CODE blocks 5 and 7 as follows:

    __attribute__ ((naked))
    
    /* SourceId : STARTUP_SourceId_001 */
    /* DesignId : STARTUP_DesignId_001 */
    /* Requirements : HL_SR508 */
    void _c_int00(void)
    {
    /* USER CODE BEGIN (5) */
        __asm__(
            "bl _coreInitRegisters_\n\t"
            "bl _coreInitStackPointer_\n\t"
            "b _c_int00_c"
        );
    }
    
    __attribute__ ((noreturn))
    void _c_int00_c(void)
    {
    #if 0
    /* USER CODE END */
    
        /* Initialize Core Registers to avoid CCM Error */
        _coreInitRegisters_();
    
    /* USER CODE BEGIN (6) */
    /* USER CODE END */
    
        /* Initialize Stack Pointers */
        _coreInitStackPointer_();
    
    /* USER CODE BEGIN (7) */
    #endif // 0
    /* USER CODE END */
    
    

    Workaround option 2:

    To work around this issue without modifying any HALCoGen-generated files:

    1. Compile with -Dnaked=noreturn -Xlinker --wrap=_c_int00 -Xlinker --wrap=_coreInitRegisters_ -Xlinker --wrap=_coreInitStackPointer_
    2. Add a C file to your project with the following code:

    __attribute__((naked)) void __wrap__c_int00(void)
    {
        __asm__(
            "bl __real__coreInitRegisters_\n\t"
            "bl __real__coreInitStackPointer_\n\t"
            "b __real__c_int00"
        );
    }
    
    void __wrap__coreInitRegisters_(void)
    {}
    
    void __wrap__coreInitStackPointer_(void)
    {}
    

    Proposed upstream fix:

    1. Rename _c_int00 to _c_int00_c
    2. Remove the calls to _coreInitRegisters_() and _coreInitStackPointer_() from _c_int00_c
    3. Add a new _c_int00 routine to either sys_startup.c (as a naked C function) or sys_core.s with the following body:
              bl _coreInitRegisters_
              bl _coreInitStackPointer_
              b _c_int00_c

    Calls to picolibc memcpy() in het.c cause data aborts

    The program gets stuck in _dabort from a memcpy call in hetInit() when compiled against picolibc's memcpy.

    Root cause:

    I can't find any explicit documentation that hetRAM1 and hetRAM2 require word-aligned stores, but nevertheless that does appear to be the case. hetInit() is counting on memcpy to perform word-aligned stores into hetRAM1 and hetRAM2. However the spec for memcpy() makes no such guarantee, and recent versions of picolibc and newlib include memcpy() implementations that break this assumption, leading to data access faults.

    Workaround:

    1. For het.c and only for het.c, pass -Dmemcpy=device_memcpy to the compiler.
    2. Include this implementation of device_memcpy() in your project:

    void *device_memcpy(void *dest, const void *src, size_t n)
    {
        uint32_t *d = dest;
        const uint32_t *s = src;
        n /= 4;
        while (n--) {
            *d++ = *s++;
        }
        return dest;
    }
    

    Tip: I apply this workaround using the following CMake snippet to ensure the -D flag is only passed to the compiler when compiling het.c:

    target_sources(halcogen PRIVATE device_memcpy.c)
    set_source_files_properties(
        source/het.c
        PROPERTIES
        COMPILE_DEFINITIONS memcpy=device_memcpy
    )

    Proposed upstream fix:

    Replace calls to memcpy() in hetInit() with calls to the above device_memcpy() implementation.

    Arm-based microcontrollers forum Arm-based microcontrollers
    • 7/29/2025
    • jagadish gundavarapu

    [FAQ] AM263P4: Enabling GPIO interrupt in MCAL for AM263P4

    Part Number: AM263P4

    Tool/software:

    In this FAQ i will show you the configurations required to enable the interrupts for pins MCU_GPIO64 and MCU_GPIO63 in MCAL for AM263P4.

    Arm-based microcontrollers forum Arm-based microcontrollers
    • 7/3/2025
    • Shaunak Deshpande

    [FAQ] LP-AM261: Unable to get MAC Port link up with AM261x-LP + Automotive PHY add-on-board (DP83TG720/721)

    Part Number: LP-AM261

    Tool/software:

    Hi experts,

    I am using the AM261x-LP. I am using the automotive-add-on board (DP83TG720/721) on top of the LaunchPad. I have followed all the steps mentioned in the documentation, checked syscfg pinmux, but I am unable to achieve a MAC port link up and establish a proper communication with the AM261x-LP.

    Can you please help debug and provide the steps to achieve a successful link up, have MAC Port open and establish a successful ethernet communication?

    Arm-based microcontrollers forum Arm-based microcontrollers
>

View FAQ threads
  • Tags
  • RSS
  • More
  • Cancel
  • Answered

    Problem with enable UART1 TIVA-C 0 Locked

    1557 views
    7 replies
    Latest over 8 years ago
    by Bob Crosby
  • Answered

    CCS/TM4C129DNCPDT: how to read write SRAM in tm4c129 0 Locked

    1325 views
    9 replies
    Latest over 8 years ago
    by Bob Crosby
  • Suggested Answer

    TM4C129XNCZAD: Discrepency in documentation on connectors J6/J9 for Booster Pack 2 connector 0 Locked

    275 views
    1 reply
    Latest over 8 years ago
    by Bob Crosby
  • Answered

    CCS/EK-TM4C1294XL: ADC conversion never completing in single_ended.c TivaWare example 0 Locked

    826 views
    4 replies
    Latest over 8 years ago
    by Ben Davis
  • Not Answered

    EK-TM4C1294XL: Recovering a "Locked" Microcontroller sequence has a strange behavior when BOOTCFG register had been committed 0 Locked

    524 views
    0 replies
    Started over 8 years ago
    by Lorenzo Verniani
  • Suggested Answer

    TM4C129ENCPDT: timer interrupt for tm4c129encpdt 0 Locked

    314 views
    1 reply
    Latest over 8 years ago
    by Bob Crosby
  • Not Answered

    CCS/EK-TM4C1294XL: SSI Data Get 0 Locked

    2084 views
    11 replies
    Latest over 8 years ago
    by cb1_mobile
  • Not Answered

    CCS/TMDXRM57LHDK: EMAC example, getting PHY ID error. 0 Locked

    493 views
    1 reply
    Latest over 8 years ago
    by QJ Wang
  • Suggested Answer

    TMS470MF06607: microcontroller wakeup issue 0 Locked

    314 views
    2 replies
    Latest over 8 years ago
    by Bob Crosby
  • Discussion

    TMS570 using UART to communicate to another device Locked

    5934 views
    7 replies
    Latest over 8 years ago
    by audry kouanda
  • Not Answered

    USB CDC Host hang-up issue 0 Locked

    694 views
    4 replies
    Latest over 8 years ago
    by Muhammad Umair Khan
  • Not Answered

    Download "Hercules Safety MCU Demos" still possible? 0 Locked

    705 views
    4 replies
    Latest over 8 years ago
    by Chuck Davenport
  • Answered

    CCS/TM4C123GH6PM: HOW TO SEND A DATA PACKET IN A UART USING FIFO? 0 Locked

    3275 views
    5 replies
    Latest over 8 years ago
    by niranjan kumar85
  • Answered

    RM44L520: HALCoGEn support for 3-wire SPI? (SISO pin) 0 Locked

    824 views
    5 replies
    Latest over 8 years ago
    by Audun Knudsrod
  • Not Answered

    CCS/TM4C123GH6PM: TM4C123 ADC not stable 0 Locked

    886 views
    5 replies
    Latest over 8 years ago
    by Praveen Gonsalves
  • Answered

    SW-EK-TM4C123GXL: PWM - Frequency & Duty Cycle Setting 0 Locked

    4611 views
    6 replies
    Latest over 8 years ago
    by Sajad Rather4
  • Not Answered

    bootloader problem 0 Locked

    4316 views
    38 replies
    Latest over 8 years ago
    by user4136848
  • Not Answered

    CCS/TM4C123GH6PM: Is it possible to change the width of SSI clock pulse 0 Locked

    481 views
    4 replies
    Latest over 8 years ago
    by cb1_mobile
  • Not Answered

    TM4C1290NCPDT: PWM to speaker driver circuit 0 Locked

    1596 views
    1 reply
    Latest over 8 years ago
    by Bob Crosby
  • Suggested Answer

    CCS/TM4C1231H6PGE: ROM functions 0 Locked

    1642 views
    8 replies
    Latest over 8 years ago
    by patrick murphy
<>