Az első lépések
A fejezet tartalma:1. A kártya beüzemelése
A FRDM-KL25Z mikrovezérlőkártya első használatba vétele előtt feltétlenül frissíteni kell a programozó/hibavadász egység firmware-ét. A gyárilag telepített korai OpenSDA firmware még a Windows 7 korszakának megfelelő környezethez készült, Windows 10 és Windows 11 alatt azonban nem működik megbízhatóan, sőt, a kártya használhatatlan állapotba kerülhet a hibavadász firmware megsérülése miatt, ami után a kártya csak a firmware újratelepítésével éleszthető fel. Szerencsére a FRDM-KL25Z kártyához is rendelkezésre áll a Segger J-Link OB firmware, amelynek telepítése ezt a problémát megoldja. A frissítés után a beépített programozó/hibavadász egység korszerű, széles körben támogatott J-Link kompatibilis eszközként használható, és a kártya a modern operációs rendszerekkel is stabilan és megbízhatóan működik.
1.1. A SEGGER J-Link OB firmware telepítése
A gyári OpenSDA firmware frissítésének legstabilabb és legidőtállóbb módja, ha a kártya programozó egységét átalakítjuk egy SEGGER J-Link OB (On-Board) eszközzé. Ez a megoldás az NXP OpenSDA platformját egy SEGGER J-Link LITE kompatibilis céleszközzé alakítja, amely Windows 10 és Windows 11 alatt is hibátlanul használható.
A J-Link OB firmware legnagyobb előnye, hogy egyszerre biztosítja az SWD alapú programletöltést és nyomkövetést, a virtuális soros porti (VCOM) kommunikációt, valamint támogatja a megszokott "drag-and-drop" (fájlbamásolós) programfeltöltést is.
A telepítés lépései:
- Illesztőprogramok telepítése: Töltsük le és telepítsük a J-Link Software and Documentation Pack csomagot a SEGGER hivatalos weboldaláról. Ez gondoskodik a szükséges J-Link USB-driverekről és a segédprogramokról.
- A firmware letöltése: A SEGGER weboldalán a J-Link OpenSDA - Board-Specific Firmwares szekcióban keressük meg és töltsük le a FRDM-KL25Z kártyához tartozó 12_OpenSDA_FRDM-KL25Z.bin állományt.
-
Bootloader módba lépés: Tartsuk lenyomva a kártyán található RESET
gombot, és közben csatlakoztassuk az USB kábelt a kártya OpenSDA csatlakozójába. A
csatlakoztatás után engedjük el a gombot. A kártyán a D4 LED lassan villogni kezd, a számítógépen pedig
megjelenik egy BOOTLOADER nevű cserélhető tárolóeszköz.

1. ábra: A FRDM-KL25Z kártya bootloader módba helyezése -
Firmware másolása: A letöltött 12_OpenSDA_FRDM-KL25Z.bin fájlt
egyszerűen másoljuk (drag-and-drop) a BOOTLOADER meghajtó gyökerébe.

2. ábra: A firmware bemásolása a BOOTLOADER mappájába - Újraindítás: A másolás befejeztével húzzuk ki a kártyát, majd csatlakoztassuk újra (most már a RESET gomb lenyomása nélkül!). A számítógép a kártyát mostantól J-Link eszközként ismeri fel, és egy FRDM-KL25ZJ nevű cserélhető tárolóeszköz jelenik meg a rendszertöltőben.
1.2. A FRDM-KL25Z kártya újraélesztése
Ismert probléma: A Windows 10 fájlrendszer-indexelése tönkreteszi a kártya gyári OpenSDA bootloaderét. Emiatt előfordulhat, hogy az 1.1. pont szerinti J-Link OB firmware telepítés sem sikerül, a kártya debuggere használhatatlanná válik. Ebben az esetben a kártyát "újra kell éleszteni" az alábbiak szerint.
Az újraélesztés menete (csak Windows 7 alatt működik stabilan):
-
A https://www.pemicro.com/opensda/
oldalról le kell tölteni az OpenSDA Firmware (MSD & Debug) csomagot (ehhez regisztrálni kell).
A letöltött fájl: Pemicro_OpenSDA_Debug_MSD_Update_Apps_2023_12_12.zip
Ebből csak a kétszeresen zip-elt BOOTUPDATEAPP_Pemicro_v111.SDA kell. -
A https://os.mbed.com/handbook/Firmware-FRDM-KL25Z
oldalról le kell tölteni a kártyához való mbed firmware-t (2011401530_k20dx128_kl25z_if_opensda).
A zip fájlból csomagoljuk ki a firmware-t: kl26z_opensda.s19 - Helyezzük a FRDM-KL25Z kártyát bootloader (programbetöltő) módba, majd a megjelenő BOOTLOADER meghajtóba másoljuk be a BOOTUPDATEAPP_Pemicro_v111.SDA és a kl26z_opensda.s19 állományokat!
- Ezt követően hajtsuk végre az 1.1. alfejezetben leírt SEGGER J-Link OB firmware telepítését, hogy a kártya a modern Windows rendszereken is használható legyen!
1.3. A kártya kipróbálása (Működésellenőrzés)
Amikor a firmware frissítése befejeződött, ellenőrizzük a programletöltést egy előre lefordított mintaprogram segítségével:
- Csatlakoztassuk a kártyát a számítógéphez normál üzemmódban (RESET gomb lenyomása nélkül). Ekkor a számítógépen felbukkan a FRDM-KL25ZJ nevű cserélhető tárolóeszköz.
- Töltsük le a tesztelési célt szolgáló előrefordított mintaprogramot: rtos_basic_KL25Z.bin.
- Másoljuk be a letöltött .bin állományt a FRDM-KL25ZJ meghajtó gyökerébe. A másolás alatt a D4 LED szabálytalan ütemben villog.
- Amikor a másolás befejeződött, nyomjuk meg a kártyán található RESET gombot. A feltöltött program elindul, és az RGB LED felváltva vörös, zöld és narancssárga színben villog, ahogy az alábbi videón is látható: rtos_basic.mp4.
2. Az offline fejlesztői környezet kialakítása (gcc4mbed)
2.1. Mi a gcc4mbed?
Az Mbed hivatalos támogatásának megszűnésével a felhőalapú fordítás elérhetetlenné vált. A gcc4mbed ezt váltja ki egy teljes értékű, helyben futó alternatívával. A gcc4mbed egy nyílt forráskódú, könnyűsúlyú, parancssori fejlesztői csomag és Makefile‑alapú build‑rendszer, amelyet kifejezetten az Mbed‑alapú C/C++ projektek helyi fordítására hoztak létre. A korábbi online fejlesztőkörnyezettel szemben a projektek konfigurálása nem grafikus felületen történik, hanem egy rövid és egyszerű Makefile megírásával. A projekt fordítása ezután a make paranccsal indítható, amellyel közvetlenül előállíthatók a mikrovezérlőre letölthető bináris (.bin vagy .hex) állományok.
A gcc4mbed csomag legfőbb összetevői és jellemzői:
- Automatizált ARM Cross-Compiler letöltés: A telepítő szkript a beállítás során automatikusan letölti és konfigurálja a GCC ARM Embedded 6-2017-q1-update eszköztárat, amellyel a PC-n megírt C/C++ kódból ARM Cortex-M mikrokontrolleren futtatható gépi kód generálható.
- Beépített GNU Make: A csomag részét képezi a Windows-ra előkészített GNU Make 3.81 fordításvezérlő eszköz, amellyel automatizálható a többforrásos projektek fordítása.
- Mbed SDK könyvtárak (rev142): Magában foglalja az Mbed hardverabsztrakciós könyvtárát (például a DigitalOut, Serial, I2C és egyéb perifériakezelő osztályokat), amely az Mbed OS 5.4.5 kiadásnak felel meg. Ez a verzió szerkezetileg még hellyel-közzel a klasszikus vonalat követi, így apróbb eltérésektől eltekintve javarészt kompatibilis az Mbed 2.0-val.
- Mintaprojektek és Make-fájlok: Előre konfigurált Makefile sablonokat tartalmaz a támogatott Mbed kártyákhoz, így a projektfordítás egyetlen make parancssori utasítással indítható.
2.2. A gcc4mbed eszköztár telepítése
A telepítés lépései Windows rendszeren:
- A forráskód letöltése: Nyissuk meg a projekthez tartozó hivatalos GitHub tárolót: https://github.com/adamgreen/gcc4mbed. Kattintsunk a zöld Code gombra, majd válasszuk a Download ZIP lehetőséget. (Közvetlen letöltési hivatkozás: gcc4mbed-master.zip).
- Kicsomagolás: Csomagoljuk ki a letöltött ZIP állomány tartalmát egy rövid, szóközöket és ékezetes betűket nem tartalmazó útvonalra, mint például: C:\gcc4mbed.
- A telepítő script futtatása: Lépjünk be a parancssorban a kicsomagolt mappa könyvtárába a cd C:\gcc4mbed parancssori utasítással, majd indítsuk el a Windows-hoz mellékelt telepítő scriptet a win_install.cmd parancs kiadásával.
-
A telepítés lefutása: A telepítő sokáig dolgozik! Futás közben automatikusan letölti a
szükséges ARM GCC
toolchain-t, majd kicsomagolja azt a gcc-arm-none-eabi almappába.
Ezután ellenőrzésként négy különböző mbed‑es célplatformra (KL25Z, K64F, LPC1768, NRF51_DK) a samples
almappában lefordít néhány mintaprojektet.
Ez a lépés nagyon időigényes mert első alkalommal le kell fordítania a teljes mbed forráskódot is
A telepítés "hordozható", nem módosítja a Windows globális környezeti változóit (PATH), így a fordításhoz szükséges eszközöket lokálisan kezeli a csomag. A telepítő szkript sikeres lefutása után a környezet készen áll a projektek fordítására.
2.3. A fejlesztői környezet könyvtárszerkezete
A telepítést követően a C:\gcc4mbed könyvtárban létrejön az offline fejlesztéshez szükséges teljes mappaszerkezet:

3. ábra: A gcc4mbed könyvtárstruktúrája
A gcc4mbed eszköztár hatékony használatához és a saját vagy átvett projektek sikeres fordításához elengedhetetlen a gyökérkönyvtár szerkezetének ismerete. A fordítási folyamat során (a Makefile beállításaiban) ugyanis a rendszernek pontosan tudnia kell, hol találja a fordítóprogramokat, a kártyaspecifikus könyvtárakat és a kiegészítő modulokat. Ezek elérését relatív útvonalakkal (például ../../external/mbed-libs) adjuk meg a felépített mappastruktúrának megfelelően.
A könyvtárszerkezet legfontosabb elemei és szerepük:
- Samples: Készen kapott mintapéldák és projekt-sablonok gyűjteménye (például a beépített LED-et villogtató HelloWorld). Új projekt létrehozásakor érdemes a Samples mappában lévő struktúrát mintaként használni, vagy az új projekt mappáját eleve itt elhelyezni, így a relatív útvonalak hivatkozásai állandóak és könnyen kezelhetőek maradnak.
- external/mbed-os: Ez maga az Mbed hivatalos forráskódja (a csomagban a stabil rev142 kiadás található). Tartalmazza az alapszintű rendszerfájlokat, a hardver közeli illesztőprogramokat (HAL), a kártyaspecifikus regiszter-leírókat és a standard Mbed API-kat (pl. DigitalOut, Serial, I2C). Ez alkotja a magot, amelyre minden projektünk épül.
- external/mbed-libs: Ebbe a mappába nekünk kell begyűjtenünk és elhelyeznünk a külső forrásból (például az Mbed archívumból) származó, vagy általunk írt újrafelhasználható programkönyvtárakat. Ide kerülnek a különféle perifériák – kijelzők, szenzorok, speciális kommunikációs modulok – kezelését végző kiegészítő kódok. Ha a projektünk használja ezeket a modulokat, aakkor a projektünkhöz tartozó Makefile állományban USER_LIBS := paraméterként meg kell adnunk a projekthez képesti relatív elérési útvonalukat.
2.4. Az első próbaprojekt lefordítása és futtatása
A gcc4mbed környezet parancssori használatra épül. A fordításhoz szükséges eszközök elérési útvonalait a telepítési könyvtárban található Buildshell.cmd indítóscript állítja be. Ezt elindítva egy előre beállított parancssori környezet (shell) nyílik meg. A fordítást (make parancs) mindig ebből az ablakból kell indítani!
Elsőként próbáljuk ki a csomagban található Samples/HelloWorld mintaprojektet!
Ez a program nem szöveges "Hello World" üzenetet jelenít meg, hanem a mikrovezérlős környezet hagyományainak megfelelően a kártya beépített LED-jét villogtatja. Ezzel ellenőrizhető, hogy a fejlesztőkörnyezet, a fordítóprogram és a kártya egyaránt megfelelően működik.
1. lista: A HelloWorld/main.cpp program listája
/* Test which brings default HelloWorld project from
mbed online compiler to be built under GCC.
*/
#include "mbed.h"
DigitalOut myled(LED1);
int main()
{
while(1)
{
myled = 1;
wait(0.2);
myled = 0;
wait(0.2);
}
}
A fordítás beállításait a projekt könyvtárában található Makefile tartalmazza:
2. lista: A HelloWorld/Makefile listája
# Copyright 2017 Adam Green (http://mbed.org/users/AdamGreen/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
PROJECT := HelloWorld
DEVICES := KL25Z
GCC4MBED_DIR := ../..
GCC4MBED_TYPE := Release
MBED_OS_ENABLE := 0
NEWLIB_NANO := 1
NO_FLOAT_SCANF := 1
NO_FLOAT_PRINTF := 1
include $(GCC4MBED_DIR)/build/gcc4mbed.mk
A legfontosabb beállítások:
- PROJECT := a projekt neve,
- DEVICES := a célhardver(ek) megnevezése (például KL25Z),
- GCC4MBED_DIR := a gcc4mbed gyökérkönyvtár relatív elérési útja
A programfordítás menete:
- A Buildshell.cmd script elindításával nyissunk egy parancsablakot, és navigáljunk a HelloWorld mintaprojekt mappájába, például: cd C:\gcc4mbed\samples\HelloWorld.
- Adjuk ki a make parancsot. Többmagos számítógépen a fordítás párhuzamos futtatással gyorsítható. például: make -j16 akár 16 programszálat futtathat egyidejűleg.
-
Sikeres fordítás után az eszköz nevével létrejövő kimeneti könyvtárban találjuk meg a mikrokontrollerre
tölthető programfájl. A legfontosabb formátumok:
- .bin – közvetlenül a kártyára másolható bináris program,
- .hex – Intel HEX formátumú programfájl. - Csatlakoztassuk a FRDM-KL25ZJ kártyát a számítógéphez normál üzemmódban (csatlakoztatáskor ne nyomjuk le a RESET gombot).
- Másoljuk át a generált HelloWorld.bin fájlt a PC-n megjelenő FRDM-KL25ZJ meghajtó gyökerébe. A másolás befejeztével a RESET gomb megnyomásával vagy a kártya újracsatlakoztatásával az új program azonnal elindul.
