Software Tools
SAM-BA® In-System Programmer (ISP)
SAM Boot Assistant In-system Programmer (SAM-BA ISP) can run on:
- Windows® 32-bit and 64-bit
- Linux® x86 and x86_64
SAM-BA ISP can program flash media through the following communication links:
- Debug port (DBGU), whether they connect through RS232 or USB-serial links
- USB device (aka USB gadget)
- SAM-BA ISP on Linux uses the USB connection through Communications Device Class (CDC) to communicate with the device
- On Windows systems, Joint Test Action Group (JTAG)
See the "Convert SAM-BA ISP Script" page for help with converting SAM-BA software tool scripts from one version of the tool to another:
- SAM-BA software v3.1 scripts to SAM-BA software v3.2 onwards
- SAM-BA software v3.2 scripts to SAM-BA software v3.5 onwards
- SAM-BA software v3.5 scripts to SAM-BA software v3.7 onwards
Tips and Tricks
Check if My Kernel Version is Compatible With SAM-BA Software
Connect the board to your computer and type:
If you have something like this, it's ok:
[227274.395739] cdc_acm 5-1:1.0: This device cannot do calls on its own. It is not a modem.
[227274.395768] cdc_acm 5-1:1.0: ttyACM0: USB ACM device
If you have no log about the cdc_acm driver, your kernel may not be up to date.
My Kernel Version is 2.6.37 or 2.6.38 and I Have No ttyACMx Node
This kernel version may contain two drivers for Microchip's Atmel® boards: the SAM-BA ISP driver and the cdc_acm driver.
Since you have two drivers for the same device, randomly the SAM-BA ISP driver or the cdc_acm driver can be used. Both allow you to launch the SAM-BA software tool and to program your board. The only consideration is the device node name. If the SAM-BA ISP driver is used, you will have a /dev/ttyUSBx node. If the cdc_acm is used, you will have a /dev/ttyACMx. In this case, you will have to create a link to /dev/ttyUSBx.
It is mainly the cdc_acm driver that is selected. To know which one has been selected, you can use the dmesg command.
The sam-ba ISP driver is used if you see something like this:
[ 72.191022] USB Serial support registered for sam-ba
[ 72.191169] sam-ba 2-1.3:1.1: sam-ba converter detected
[ 72.191364] usb 2-1.3: sam-ba converter now attached to ttyUSB1
[ 72.191762] usbcore: registered new interface driver sam-ba
[ 72.191765] sam_ba: v1.0: Atmel SAM Boot Assistant (SAM-BA) driver
[ 72.519248] cdc_acm 2-1.3:1.0: This device cannot do calls on its own. It is not a modem.
[ 72.519258] cdc_acm: probe of 2-1.3:1.0 failed with error -16
[ 72.519272] usbcore: registered new interface driver cdc_acm
[ 72.519273] cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters
You can see that a /dev/ttyUSB1 node has been created.
In the other case, if the cdc_acm driver is used, you will have:
[ 766.585934] cdc_acm 2-1.1:1.0: This device cannot do calls on its own. It is not a modem.
[ 766.586033] cdc_acm 2-1.1:1.0: ttyACM0: USB ACM device
You can see that a /dev/ttyACM0 node has been created.
Check the USB Link Between the Board and the Computer
Bus 004 Device 006: ID 03eb:6124 Atmel Corp
03eb is the vendor number and 6124 is the product number.
Issues While Running SAM-BA Software v3 Scripts (Module SAM-BA Version x.y is Not Installed)
If you encounter the following issues while running your SAM-BA software v3 scripts, it must mean that your SAM-BA software revision and the SAM-BA ISP script used are not aligned.
New Revision of SAM-BA Software Running an Old Script
SAM-BA Command Line Tool v3.2.0
Copyright 2015-2017 ATMEL Corporation
sam-ba -x demo_linux_serialflash_usb.qml
"file:demo_linux_serialflash_usb.qml:1 module \"SAMBA\" version 3.1 is not installed\n"
In such a case, we advise you to keep your newer revision of the SAM-BA software, but convert your SAM-BA ISP script to a newer revision by following the "Convert SAM-BA ISP Script" page.
Old Revision of SAM-BA Software Running a New Script
SAM-BA Command Line Tool v3.1.4
Copyright 2015-2016 ATMEL Corporation
sam-ba -x demo_linux_serialflash_usb.qml
"file:demo_linux_serialflash_usb.qml:1 module \"SAMBA\" version 3.2 is not installed\n""
In such a case, we advise you to download a newer revision of the SAM-BA software.
Burn Images to SD Cards With balenaEtcher®
For the purpose of creating demo images on SD cards, we recommend utilizing balenaEtcher®. This tool offers several advantageous features, including compatibility across multiple platforms and robust security measures, ensuring that it does not inadvertently compromise your hard drive. Additionally, as this project is open source, you may access the source code on GitHub®.
Serial Terminal Configuration
Using a terminal software on your host system, you can connect to the application running on the System on Chip (SoC) through the DBGU or a Universal Synchronous/Asynchronous Receiver/Transmitter (USART) serial interface.
All components and demo binaries are now configured to work at 115200 8-N-1.
Failed to execute the [include] macro. Cause: [Current user [null] doesn't have view rights on document [xwiki:Development.applications.linux4sam.Boards.__notes._board-sections-test.common-serial.WebHome]]. Click on this message for details.
Yocto Project® SDK
To simplify software development on the root filesystems we provide, we have created a Yocto Project® Software Development Kit (SDK) that enables you to cross-compile your C/C++ projects.
The common specifications for each toolchain are as follows:
- Built for Linux x86 64-bit architecture (x86_64)
- Uses the glibc C library
Includes a version of the Qt® library and allows you to build a Qt application
- Built from source and can be rebuilt by following the documentation provided on the "OpenEmbedded/Yocto Project: Build From Sources" page
- Distributed as a self-extracting shell script that installs the toolchain in the /opt directory
| Description | Binary | Recipe used to generate the SDK | Distribution used |
| Yocto Project 5.0.4 - scarthgap (Linux4Microchip 2025.04) | |||
|---|---|---|---|
| Arm® Cortex®-A5 Hard float NEON™ with EGT (like sama5d2 or sama5d4 for instance) | linux4sam-oecore-Cortex-A5-sdk-2025.04.sh | bitbake -c populate_sdk mchp-graphics-image | meta-mchp |
| ARMv5 (for ARM926) with EGT - sam9 family (like at91sam9x60 for instance) | linux4sam-oecore-ARMv5-sdk-2025.04.sh | bitbake -c populate_sdk mchp-graphics-image | meta-mchp |
| Arm Cortex-A7 Hard float NEON (like sama7g5ek for instance) | linux4sam-oecore-Cortex-A7-sdk-2025.04.sh | bitbake -c populate_sdk mchp-graphics-image | meta-mchp |
| Description | Binary | Recipe used to generate the SDK | Distribution used |
| Yocto Project 5.0.4 - scarthgap (Linux4Microchip 2024.10) | |||
|---|---|---|---|
| Arm Cortex-A5 Hard float NEON with EGT (like sama5d2 or sama5d4 for instance) | linux4sam-poky-Cortex-A5-sdk-2024.10.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| ARMv5 (for ARM926) with EGT - sam9 family (like at91sam9x60 for instance) | linux4sam-poky-ARMv5-sdk-2024.10.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| Arm Cortex-A7 Hard float NEON (like sama7g5ek for instance) | linux4sam-poky-Cortex-A7-sdk-2024.10.sh | bitbake -c populate_sdk microchip-headless-image | poky-atmel |
| Description | Binary | Recipe used to generate the SDK | Distribution used |
| Yocto Project 4.0.17 - kirkstone (Linux4Microchip 2024.04) | |||
|---|---|---|---|
| Arm Cortex-A5 Hard float NEON with EGT (like sama5d2 or sama5d4 for instance) | poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d27-wlsom1-ek-sd-toolchain-4.0.17.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| ARMv5 (for ARM926) with EGT - sam9 family (like at91sam9x60 for instance) | poky-atmel-glibc-x86_64-microchip-graphics-image-armv5e-sam9x60-curiosity-sd-toolchain-4.0.17.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| ARMv5 (for ARM926) - sam9 family (like at91sam9x60 for instance) | poky-atmel-glibc-x86_64-microchip-headless-image-armv5e-sam9x60-curiosity-sd-toolchain-4.0.17.sh | bitbake -c populate_sdk microchip-headless-image | poky-atmel |
| Arm Cortex-A7 Hard float NEON (like sama7g5ek for instance) | poky-atmel-glibc-x86_64-microchip-headless-image-cortexa7hf-neon-vfpv4-sama7g5ek-sd-toolchain-4.0.17.sh | bitbake -c populate_sdk microchip-headless-image | poky-atmel |
| Description | Binary | Recipe used to generate the SDK | Distribution used |
| Yocto Project 4.0.13 - kirkstone (Linux4SAM 2023.10) | |||
|---|---|---|---|
| Arm Cortex-A5 Hard float NEON with EGT (like sama5d2 or sama5d4 for instance) | poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d27-wlsom1-ek-sd-toolchain-4.0.13.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| ARMv5 (for ARM926) with EGT - sam9 family (like at91sam9x60 for instance) | poky-atmel-glibc-x86_64-microchip-graphics-image-armv5e-sam9x60-curiosity-sd-toolchain-4.0.13.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| ARMv5 (for ARM926) - sam9 family (like at91sam9x60 for instance) | poky-atmel-glibc-x86_64-microchip-headless-image-armv5e-sam9x60-curiosity-sd-toolchain-4.0.13.sh | bitbake -c populate_sdk microchip-headless-image | poky-atmel |
| Arm Cortex-A7 Hard float NEON (like sama7g5ek for instance) | poky-atmel-glibc-x86_64-microchip-headless-image-cortexa7hf-neon-vfpv4-sama7g5ek-sd-toolchain-4.0.13.sh | bitbake -c populate_sdk microchip-headless-image | poky-atmel |
| Description | Binary | Recipe used to generate the SDK | Distribution used |
| Yocto Project 4.0.9 - kirkstone (Linux4SAM 2023.04) | |||
|---|---|---|---|
| Arm Cortex-A5 Hard float NEON with EGT (like sama5d2 or sama5d4 for instance) | poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d2-xplained-toolchain-4.0.9.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| ARMv5 (for ARM926) with EGT - sam9 family (like at91sam9x60 for instance) | poky-atmel-glibc-x86_64-microchip-graphics-image-armv5e-sam9x60ek-toolchain-4.0.9.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| ARMv5 (for ARM926) - sam9 family (like at91sam9x60 for instance) | poky-atmel-glibc-x86_64-microchip-headless-image-armv5e-sam9x60ek-toolchain-4.0.9.sh | bitbake -c populate_sdk microchip-headless-image | poky-atmel |
| Arm Cortex-A7 Hard float NEON (like sama7g5ek for instance) | poky-atmel-glibc-x86_64-microchip-headless-image-cortexa7hf-neon-vfpv4-sama7g5ek-sd-toolchain-4.0.9.sh | bitbake -c populate_sdk microchip-headless-image | poky-atmel |
| Description | Binary | Recipe used to generate the SDK | Distribution used |
| Yocto Project 4.0.3 - kirkstone (Linux4SAM 2022.10) | |||
|---|---|---|---|
| Arm Cortex-A5 Hard float NEON with EGT (like sama5d2 or sama5d4 for instance) | poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d27-wlsom1-ek-sd-toolchain-4.0.3.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| ARMv5 (for ARM926) with EGT - sam9 family (like at91sam9x60 for instance) | poky-atmel-glibc-x86_64-microchip-graphics-image-armv5e-sam9x60ek-sd-toolchain-4.0.3.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| ARMv5 (for ARM926) - sam9 family (like at91sam9x60 for instance) | poky-atmel-glibc-x86_64-microchip-headless-image-armv5e-sam9x60ek-sd-toolchain-4.0.3.sh | bitbake -c populate_sdk microchip-headless-image | poky-atmel |
| Arm Cortex-A7 Hard float NEON (like sama7g5ek for instance) | poky-atmel-glibc-x86_64-microchip-headless-image-cortexa7hf-neon-vfpv4-sama7g5ek-sd-toolchain-4.0.3.sh | bitbake -c populate_sdk microchip-headless-image | poky-atmel |
| Description | Binary | Recipe used to generate the SDK | Distribution used |
| Yocto Project 3.1.15 - dunfell (Linux4SAM 2022.04) | |||
|---|---|---|---|
| Arm Cortex-A5 Hard float NEON with EGT (like sama5d2 or sama5d4 for instance) | poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d27-wlsom1-ek-sd-toolchain-3.1.15.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| ARMv5 (for ARM926) with EGT - sam9 family (like at91sam9x60 for instance) | poky-atmel-glibc-x86_64-microchip-graphics-image-armv5e-sam9x60ek-sd-toolchain-3.1.15.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| ARMv5 (for ARM926) - sam9 family (like at91sam9x60 for instance) | poky-atmel-glibc-x86_64-microchip-headless-image-armv5e-sam9x60ek-sd-toolchain-3.1.15.sh | bitbake -c populate_sdk microchip-headless-image | poky-atmel |
| Arm Cortex-A7 Hard float NEON (like sama7g5ek for instance) | poky-atmel-glibc-x86_64-microchip-headless-image-cortexa7hf-neon-vfpv4-sama7g5ek-sd-toolchain-3.1.15.sh | bitbake -c populate_sdk microchip-headless-image | poky-atmel |
| Yocto Project 3.1.12 - dunfell (Linux4SAM 2021.10) | |||
|---|---|---|---|
| Arm Cortex-A5 Hard float NEON with EGT (like sama5d2 or sama5d4 for instance) | poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d27-wlsom1-ek-sd-toolchain-3.1.9.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| Arm Cortex-A5 Hard float NEON (like sama5d2 or sama5d4 for instance) Lightweight toolchain (with libgpiod and libevnet needed by PTC examples application) | poky-atmel-glibc-x86_64-microchip-headless-image-cortexa5t2hf-neon-vfpv4-sama5d27-wlsom1-ek-sd-toolchain-3.1.9.sh | bitbake -c populate_sdk microchip-headless-image | poky-atmel |
| ARMv5 (for ARM926) with EGT - sam9 family (like at91sam9x60 for instance) | poky-atmel-glibc-x86_64-microchip-graphics-image-armv5e-sam9x60ek-sd-toolchain-3.1.9.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| ARMv5 (for ARM926) - sam9 family (like at91sam9x60 for instance) | poky-atmel-glibc-x86_64-microchip-headless-image-armv5e-sam9x60ek-sd-toolchain-3.1.9.sh | bitbake -c populate_sdk microchip-headless-image | poky-atmel |
| Yocto Project 3.1.9 - dunfell (Linux4SAM 2021.04) | |||
|---|---|---|---|
| Arm Cortex-A5 Hard float NEON with EGT (like sama5d2 or sama5d4 for instance) | poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d27-wlsom1-ek-sd-toolchain-3.1.4.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| Arm Cortex-A5 Hard float NEON (like sama5d2 or sama5d4 for instance) Lightweight toolchain (with libgpiod and libevnet needed by PTC examples application) | poky-atmel-glibc-x86_64-microchip-headless-image-cortexa5t2hf-neon-vfpv4-sama5d27-wlsom1-ek-sd-toolchain-3.1.4.sh | bitbake -c populate_sdk microchip-headless-image | poky-atmel |
| ARMv5 (for ARM926) with EGT - sam9 family (like at91sam9x60 for instance) | poky-atmel-glibc-x86_64-microchip-graphics-image-armv5e-sam9x60ek-sd-toolchain-3.1.4.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| ARMv5 (for ARM926) - sam9 family (like at91sam9x60 for instance) | poky-atmel-glibc-x86_64-microchip-headless-image-armv5e-sam9x60ek-sd-toolchain-3.1.4.sh | bitbake -c populate_sdk microchip-headless-image | poky-atmel |
| Yocto Project 3.1.4 - dunfell (Linux4SAM 2020.10) | |||
| Arm Cortex-A5 Hard float NEON with EGT (like sama5d2 or sama5d4 for instance) | poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d2-xplained-sd-toolchain-3.1.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| Arm Cortex-A5 Hard float NEON (like sama5d2 or sama5d4 for instance) Lightweight toolchain (with libgpiod and libevnet needed by PTC examples application) | poky-atmel-glibc-x86_64-microchip-headless-image-cortexa5t2hf-neon-vfpv4-sama5d2-xplained-sd-toolchain-3.1.sh | bitbake -c populate_sdk microchip-headless-image | poky-atmel |
| Arm Cortex-A5 Hard float with EGT Lightweight toolchain (like sama5d3) | poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-vfp-sama5d3-xplained-sd-toolchain-3.1.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| ARMv5 (for ARM926) with EGT - sam9 family (like at91sam9x60 for instance) | poky-atmel-glibc-x86_64-microchip-graphics-image-armv5e-sam9x60ek-sd-toolchain-3.1.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| ARMv5 (for ARM926) - sam9 family (like at91sam9x60 for instance) | poky-atmel-glibc-x86_64-microchip-headless-image-armv5e-sam9x60ek-sd-toolchain-3.1.sh | bitbake -c populate_sdk microchip-headless-image | poky-atmel |
| Yocto Project 2.7.X - warrior (Linux4SAM 2020.04) | |||
| Arm Cortex-A5 Hard float NEON with EGT & QT 5 (like sama5d2 or sama5d4 for instance) | poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d2-xplained-sd-toolchain-2.7.1.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| Arm Cortex-A5 Hard float NEON (like sama5d2 or sama5d4 for instance) Lightweight toolchain (with libgpiod and libevnet needed by PTC examples application) | poky-atmel-glibc-x86_64-microchip-headless-image-cortexa5t2hf-neon-vfpv4-sama5d2-xplained-sd-toolchain-2.7.2.sh | bitbake -c populate_sdk microchip-headless-image | poky-atmel |
| Arm Cortex-A5 Hard float with EGT & QT 5 Lightweight toolchain (like sama5d3) | poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-vfp-sama5d3-xplained-sd-toolchain-2.7.2.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| ARMv5 (for ARM926) with EGT & QT 5 - sam9 family (like at91sam9x60 for instance) | poky-atmel-glibc-x86_64-microchip-graphics-image-armv5e-sam9x60ek-sd-toolchain-2.7.1.sh | bitbake -c populate_sdk microchip-graphics-image | poky-atmel |
| ARMv5 (for ARM926) - sam9 family (like at91sam9x60 for instance) | poky-atmel-glibc-x86_64-microchip-headless-image-armv5e-sam9x60ek-sd-toolchain-2.7.2.sh | bitbake -c populate_sdk microchip-headless-image | poky-atmel |
| Yocto Project 2.6.2 - thud (Linux4SAM 6.2) | |||
| Arm Cortex-A5 Hard float NEON with QT 5 (like sama5d2 or sama5d4 for instance) | poky-atmel-glibc-x86_64-atmel-qt5-demo-image-cortexa5t2hf-neon-toolchain-2.6.2.sh | bitbake -c populate_sdk atmel-qt5-demo-image | poky-atmel |
| Arm Cortex-A5 Hard float NEON (like sama5d2 or sama5d4 for instance) Lightweight toolchain (with libgpiod and libevnet needed by PTC examples application) | poky-atmel-glibc-x86_64-atmel-xplained-lcd-demo-image-cortexa5t2hf-neon-toolchain-2.6.2.sh | bitbake -c populate_sdk atmel-xplained-lcd-demo-image | poky-atmel |
| Arm Cortex-A5 Hard float with QT 5 (like sama5d3) | poky-atmel-glibc-x86_64-atmel-qt5-demo-image-cortexa5t2hf-vfp-toolchain-2.6.2.sh | bitbake -c populate_sdk atmel-qt5-demo-image | poky-atmel |
| ARMv5 (for ARM926) - sam9 family (like at91sam9x5 for instance) | poky-atmel-glibc-x86_64-atmel-xplained-lcd-demo-image-armv5e-toolchain-2.6.2.sh | bitbake -c populate_sdk atmel-xplained-lcd-demo-image | poky-atmel |
Yocto Project 2.5.1 - sumo (Linux4SAM 6.1) | |||
| Arm Cortex-A5 Hard float NEON with QT 5 (like sama5d2 or sama5d4 for instance) | poky-atmel-glibc-x86_64-atmel-qt5-demo-image-cortexa5hf-neon-toolchain-2.5.1.sh | bitbake -c populate_sdk atmel-qt5-demo-image | poky-atmel |
| Arm Cortex-A5 Hard float NEON (like sama5d2 or sama5d4 for instance) Lightweight toolchain (with libgpiod and libevnet needed by PTC examples application) | poky-atmel-glibc-x86_64-atmel-xplained-lcd-demo-image-cortexa5hf-neon-toolchain-2.5.1.sh | bitbake -c populate_sdk atmel-xplained-lcd-demo-image | poky-atmel |
| Arm Cortex-A5 Hard float with QT 5 (like sama5d3) | poky-atmel-glibc-x86_64-atmel-qt5-demo-image-cortexa5hf-vfp-toolchain-2.5.1.sh | bitbake -c populate_sdk atmel-qt5-demo-image | poky-atmel |
| ARMv5 (for ARM926) - sam9 family (like at91sam9x5 for instance) | poky-atmel-glibc-x86_64-atmel-xplained-lcd-demo-image-armv5e-toolchain-2.5.1.sh | bitbake -c populate_sdk atmel-xplained-lcd-demo-image | poky-atmel |
| Yocto Project 2.4.2 - rocko (Linux4SAM 6.0) | |||
| Arm Cortex-A5 Hard float NEON with QT 5 (like sama5d2 or sama5d4 for instance) | poky-atmel-glibc-x86_64-atmel-qt5-demo-image-cortexa5hf-neon-toolchain-2.4.2.sh | bitbake -c populate_sdk atmel-qt5-demo-image | poky-atmel |
| Arm Cortex-A5 Hard float NEON (like sama5d2 or sama5d4 for instance) Lightweight toolchain (with libgpiod and libevnet needed by PTC examples application) | poky-atmel-glibc-x86_64-atmel-xplained-demo-image-cortexa5hf-neon-toolchain-2.4.2.sh | bitbake -c populate_sdk atmel-xplained-lcd-demo-image | poky-atmel |
| Arm Cortex-A5 Hard float with QT 5 (like sama5d3) | poky-atmel-glibc-x86_64-atmel-qt5-demo-image-cortexa5hf-vfp-toolchain-2.4.2.sh | bitbake -c populate_sdk atmel-qt5-demo-image | poky-atmel |
| ARMv5 (for ARM926) - sam9 family (like at91sam9x5 for instance) | poky-atmel-glibc-x86_64-atmel-xplained-lcd-demo-image-armv5e-toolchain-2.4.2.sh | bitbake -c populate_sdk atmel-xplained-lcd-demo-image | poky-atmel |
For other examples of original Yocto Project toolchains, you can browse the toolchain directory of each Yocto Project release (here 2.4.2 as an example).
In addition to the OeBuild#Atmel_Poky_SDK chapter, you can use the comprehensive Yocto Project documentation that gives details on how to set up a Yocto Project SDK.
Buildroot SDK
To simplify software development on top of the root filesystems we provide, we have created a Buildroot SDK that you can use to cross-compile your C/C++ projects.
Common specifications for each toolchain include:
- Built for the Linux x86 64-bit architecture (x86_64)
- Compiled from source and can be rebuilt by running the make sdk command in your Buildroot directory after building your image
- Packaged as an archive generated from a specific board defconfig, including all the necessary toolchains for building and libraries for linking
Other Ready-Made Cross-Compilation Toolchains
These other ready-made cross-compilation toolchains for Linux x86 64-bit architecture (x86_64) are built using BuildRoot and also address several architectures.
| Target Architecture | Cross-Compilation Toolchain to Choose |
|---|---|
| ARMv5 (for ARM926) - sam9 family (like at91sam9x5 for instance) | armv5-eabi |
| Arm Cortex-A Hard float - sama5 family (like sama5d3 or sama5d2 for instance) | armv7-eabihf |
Toolchains can be selected and downloaded from Bootlin (formerly Free Electrons).
Device or Resource Busy: '/dev/ttyACM0'
When using the serial CDC interface for SAM-BA software or a terminal console on certain Linux hosts, you may occasionally experience long delays when attempting to connect. You might also encounter the following error message:
This issue typically occurs immediately after rebooting the board or performing a reset.
In fact, a USB modem detector process—modem-manager—is taking control of the device as soon as it appears. You can identify this using the lsof command:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
modem-man 10256 root 28u CHR 166,0 0t0 190530 /dev/ttyACM0
>
> ps aux | grep modem
root 10256 0.1 0.0 83408 3420 ? S 11:57 0:00 /usr/sbin/modem-manager
Solutions
You have several options to resolve this issue:
Stop the modem-manager process before connecting the USB cable:
> sudo killall modem-managerSearch the corresponding package installed with your distribution's packet management tool and remove this "modem management" application:
For example, on Ubuntu distributions:> sudo dpkg-query -S /usr/sbin/modem-manager modemmanager: /usr/sbin/modem-manageror on more recent Ubuntu® distributions:
> sudo dpkg-query -S /usr/sbin/ModemManager modemmanager: /usr/sbin/ModemManagerthen run:
> sudo apt-get remove modemmanagerEdit the udev rules to exclude the serial CDC interfaces from Modem Manager handling:
For example, on Ubuntu distributions:
> sudoedit /lib/udev/rules.d/10-microchip-usb-device-blacklist.rulesThen insert the following lines:
# Microchip boards CDC interfaces: Not handled by ModemManager
# SAM-BA CDC interface with SAM-BA monitor
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", ENV{ID_MM_DEVICE_IGNORE}="1"
# EDBG CDC interface
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2111", ENV{ID_MM_DEVICE_IGNORE}="1"
# SEGGER console interface ATTRS{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"Finally, restart udev:
> sudo service udev restart
udev stop/waiting
udev start/running, process 9299This is done by editing the file /lib/systemd/system/ModemManager.service as shown:
> sudoedit /lib/systemd/system/ModemManager.service
[..]
ExecStart=/usr/sbin/ModemManager --filter-policy=paranoid
[..]
> sudo systemctl daemon-reload
> sudo systemctl restart ModemManager
More information on this can be found on a bug entry in ModemManager.
