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

    USB device / alternate signal functions 0 Locked

    414 views
    3 replies
    Latest over 13 years ago
    by Peter Martin
  • Answered

    RM48 / TMS570 evaluation board pin out errors for 337 BGA? 0 Locked

    348 views
    1 reply
    Latest over 13 years ago
    by Haixiao Weng
  • Answered

    Program, Control, Data word insertion 0 Locked

    483 views
    9 replies
    Latest over 13 years ago
    by Jean-Marc Mifsud
  • Answered

    LM4F PINMUXTOOL 0 Locked

    660 views
    4 replies
    Latest over 13 years ago
    by cb1
  • Answered

    RM48HDK board use uCosII demo meet VFP config problem 0 Locked

    1336 views
    6 replies
    Latest over 13 years ago
    by jianwei xie
  • Answered

    RM48L950 and RM48L952 different 0 Locked

    595 views
    4 replies
    Latest over 13 years ago
    by jianwei xie
  • Answered

    TI Stellaris Oscilloscope not connecting to LM4F232 eval kit 0 Locked

    963 views
    5 replies
    Latest over 13 years ago
    by Stellaris Joe
  • Not Answered

    Error of Commit flash write 0 Locked

    338 views
    4 replies
    Latest over 13 years ago
    by Gunjan Bhavsar7
  • Not Answered

    Use of Keil ARM tools 0 Locked

    665 views
    3 replies
    Latest over 13 years ago
    by Cristiano Werner Araujo
  • Answered

    SM470RIB1M-HT GIOA Interrupt Issue 0 Locked

    536 views
    4 replies
    Latest over 13 years ago
    by jimmy zhang77361
  • Answered

    TMS570 HET Instruction PCNT 0 Locked

    1035 views
    4 replies
    Latest over 13 years ago
    by Brent Shen
  • Answered

    PWM signal using Capture/Compare Timer 0 Locked

    3050 views
    12 replies
    Latest over 13 years ago
    by Mark Ackerson
  • Answered

    use uCOSII , modify Interrupt vector address occurred error 0 Locked

    2151 views
    8 replies
    Latest over 13 years ago
    by Jean-Marc Mifsud
  • Not Answered

    Question of N2HET instruction. 0 Locked

    610 views
    3 replies
    Latest over 13 years ago
    by Jean-Marc Mifsud
  • Answered

    mibspi driver support 0 Locked

    575 views
    8 replies
    Latest over 13 years ago
    by Jean-Marc Mifsud
  • Answered

    TMS570 HET Instrucation ECMP 0 Locked

    705 views
    4 replies
    Latest over 13 years ago
    by Charles Tsai
  • Not Answered

    Erasing whole Flash before debugging the code 0 Locked

    765 views
    4 replies
    Latest over 13 years ago
    by Gunjan Bhavsar7
  • Answered

    Customer OTP - Bank 0 contains data 0 Locked

    373 views
    2 replies
    Latest over 13 years ago
    by Erich Ebenhoch
  • Answered

    RM48 EVM pin 0 Locked

    261 views
    2 replies
    Latest over 13 years ago
    by Jay Hong
  • Suggested Answer

    IAR Compiler Debug mode operating delay 0 Locked

    684 views
    4 replies
    Latest over 13 years ago
    by Zhaohong Zhang
<>