Fórum témák
» Több friss téma |
Ez biztosan működik f407zet-en (fekete board): STM32F4xx_SDIO_Example.zip
Teszteltem! Bár ez rajtad nem segít, mert Keil-böl kellene adoptálnod! Csak biztatásképen, hogy menni fog ez! Teszt: SD Kártya nélkül <CR> Debug Module Init <CR>Open a test file (message.txt) <CR>not exist the test file (message.txt) <CR>Create a new file (hello.txt) <CR>Create a new file error <CR>rc=3 FR_NOT_READY SD Kártyával <CR><CR> Debug Module Init <CR>Open a test file (message.txt) <CR>Type the file content <CR><CR> MESSAGE.TXT <CR>Close the file <CR>Create a new file (hello.txt) <CR>Write a text data. (hello.txt) <CR>14 bytes written <CR>Close the file <CR>read the file (hello.txt) <CR>Type the file content(hello.txt) <CR>Hello world! <CR>Close the file (hello.txt) <CR>Open root directory <CR>Directory listing... <CR> 14 HELLO.TXT <CR> 13 MESSAGE.TXT <CR>Test completed <CR> A hozzászólás módosítva: Máj 25, 2018
Azért jó, hogy utána néztem a problémádnak!
Mert közben megtaláltam a megoldást az én USARt – DMA átvitel vége, lezárásának. Végig itt volt az orom előtt.
Belenéztem a kódba és lefordítottam TrueStudio-val. Legközelebb mellékeld a toolchain-t is, nem volt annyira vicces mindent úgy összevadászni (honnan tudjam, melyik verziót használod?).
Nálam is pont úgy viselkedik mint nálad (létrejön a fájl, de üres), így kicsit belenéztem a használt könyvtárakba is. Az összes úgy van összekukázva valahonnan, a driver a fatfshez egy nagy halom [csúnya szó ] (pl. minden egyes híváskor teljesen újrainicializálja a perifériát, illetve a kártyát, csak épp minek), a használt sdcard.c és .h vmi ősrégi SPL példán alapszik, az "új" már rengeteget fejlődött ehhez képest. A FatFS is ősrégi. Szerintem ez így több erőfeszítést nem érdemel meg. Keress valamilyen frissebb forrást.
Na egye fene alapon beletettem azt a példa könyvtárat kíváncsiságból, amit múltkor linkeltem. Frissítettem az utasításokat a main.c-ben és voilá tökéletesen működik.
Most rajtad a sor, hogy adaptáld IAR-be... A hozzászólás módosítva: Máj 25, 2018
Köszi, meg fogom nézni.
Remélem sikerül majd implementálnom.. Mi az a toolchain? FatFs verziója, vagy mire gondolsz?
Nekem 15 Errort produkál a programod!
Nem igazán értem, mert más projectben nincsen hiba a: "startup_stm32f407xx.s"-ben!
Mert nem az én linker scriptemet használod valamiért. Én külön definiáltam extra változókat és hozzáadtam a szükséges assembly inicializációs kódot a CCM (core coupled memory) helyes használatához (alapból az ide szánt változókat se nem inicializálja, se nem nullázza az erre a célra készített startup kód, pedig a C szabvány ezt előírja). Például az RTOS heap területét (és így a task-ok stack területét is) ide szoktam tenni, mert így gyorsabban működik a szoftver. Az egyetlen feltétel az, hogy DMA-t nem lehet ezzel a területtel használni (ahhoz a hagyományos SRAM-ból kell területet foglalni).
Közben rájöttem. Mivel csak projektet készítettem a meglévő könyvtárból, ezért nem állította be a linker script-et a projektben. Gondolom nálad valamilyen alapértelmezett linker script-et használt és abban hiányoznak a szükséges változók. A projekt nevén jobb klikkelve hozhatod elő a Properties ablakot. Ott keresd meg a képen látható beállítást és állítsd be.
A project toolchain-je a fordításhoz szükséges összes kiegészítő és forráskód összessége. Ez alatt GCC esetén értjük tehát az ARM-hoz való GCC-t (ezt tartalmazza a TrueStudio tehát ezt adott), a linker scriptet, a startup scriptet, az SPL-t és CMSIS-t, illetve az összes további felhasznált könyvtárat.
A te esetedben lévén IAR-t használsz, illett volna a használt SPL és CMSIS könyvtárakat is mellékelni. Igen, a FatFS is a toolchain része.
Köszönöm!
Ma is tanultam valami újat! Csak még meg is kel majd érteni, hogyan csináltad?
Akkor azt mondod, hogy automatikusan nem használja az Atollic a: CCMRAM (rw) : ORIGIN = 0x10000000, LENGTH = 64K memóriát?
Ezt kézzel kel beállítani?
Kipróbáltam, implementáltam, lefut és hiba mentesen indul is, de sajnos nem csinál semmit.
Még csak 1 hibát sem dob.. Nem is értem.. Van amit be kell állítanom a header állományokban? Csatoltam a képet.., a hibátlan hiba.. A hozzászólás módosítva: Máj 26, 2018
Tévedtem még is van, hiba, csak nem írattam ki előzőleg..: kép csatolva (Not Ready)
Pontosan.
Ha megnézed a linker scriptjeidet (.ld fájl), akkor láthatod hogy a .data és .bss szekciót a RAM-ba teszi (a .data az inicializált változót [van kezdőértéke, ami nem nulla, ezért flash-t is "eszik" hozzá], .bss pedig a nullára inicializált változókat jelenti, természetesen mindkét terület a globális változókra vonatkozik csak). Ez a két szekció a standard C változóké. Ha egy változót máshova akarsz tenni, mint ezek az alapértelmezett területek, akkor azt külön jelezned kell. GCC esetén erre a section szolgál. pl.:
Majd használat:
A linker script-ben pedig:
A példában látszik, hogy akár fix területekre is hivatkozhatunk a flash-ben is (jól jöhet, ha ritkán változó erőforrásokat fix területre mentünk, mert nem kell őket állandóan beleírni a flashbe új program feltöltésekor). A hozzászólás módosítva: Máj 26, 2018
Figyi, látom, hogy van egy ilyen fájl: Debug_STM32F407ZE_FLASH.ld
Ezt nekem is kellene valahogy használnom? Ezek szerint kell az SD működéséhez? Lehet ezért nem megy semmi nálam. ui: ha igen, akkor ezt hogy tudom a rendszernek jelezni, hogy ezt a linkert keresse és használja? A hozzászólás módosítva: Máj 26, 2018
Köszi!
Kitaláltad a gondolatomat! Éppen ezek iránt szeretem volna érdeklődni. Csinálok pdf-et az okításaidból, hogy megmaradjon későbbre. És megpróbálom átvinni a gyakorlatba.
Szerintem az neked nem kell (az IAR valószínűleg más formátumot használ). Ha kellene akkor nem is fordult volna le eddig a programod lévén ez a linker script, ami megmondja mit hova tegyen a fordító.
Akkor viszont passzolom a dolog.. Nem megy sajna.
Ez az Atollic TrueSTUDIO ingyenes?
Kérdés még, hogy melyik verziója a legjobb, mit érdemes letölteni? Nézegetem, hogy hasonló mint az IAR, elég letisztultnak látszik elsőre, lehet muszáj lesz váltanom, ha ennyire nem működnek a dolgok IAR alatt.
Igen az. Tavaly megvette az ST a céget és azóta ingyenessé tette a professional verziót (és kiszedte belőle a konkurencia támogatását természetesen). Értelemszerűen a legújabb verziót használd.
https://www.atollic.com/
9-est leszedtem.. Kipróbálom, hátha megtetszik..
Ilyen programozom van: Bővebben: Link
Ezt be lehet állítani, hogy működjön a programmal, vagy megszívtam?
Bővebben, Menük: help > information center > J-link user guide
Többet én sem tudok.
Mert én az F4DISCOVERI boardon levő gyári ST-linket, kötöttem a fekete zet-es boardra.
Én ilyet használok:
https://www.segger.com/products/debug-probes/j-link/models/j-link-edu/ Gondolom a tied a kínai klónja ennek. A J-Link debugger-t a project létrehozásának elején is ki lehet választani, illetve utólag is hozzá adható. Nyomsz egy jobb klikket a project nevén, utána Debug As / Debug Configurations... Ekkor megnyílik egy dialógusablak, itt a bal felső sarokban lévő New gombbal adhatsz hozzá új debugger eszközt. Javaslom szerezz be egy ST-Link-et is. Sokkal lassabb ugyan, viszont a J-Link-nek néha (spéci esetben) van valami kehe, ami miatt nem lehet vele minden hibát megkeresni (egyszerűen elveszti a fonalat léptetésnél pl. kernel debugnál). A hozzászólás módosítva: Máj 27, 2018
Igen, így csinálom én is a beállítást.
Szerinted egy ilyen is jó lehet? Bővebben: Link Sajnos az enyémmel, egyszer elindul, ha gyorsan léptetek, akkor egyszer végig megy majd behal. Lehet ezt nem debugba is programozni? Mert ha be tudja programozni a kontrollert azzal lehetne ellenőrizni a működést, bár debug nélkül nem sok minden látszana..
Az a baj az ilyen klón programozókkal, hogy régi firmware van rajtuk és nem lehet használni velük az új drivereket. Ha nincs eredetire pénzed, akkor használhatod a filléres ST-Link-eket, ott nincs ez a gond, bár valamivel lassabbak.
Pl.: https://www.aliexpress.com/item/1pcs-New-ST-LINK-V2-ST-LINK-V2-CN-S...6.html Ha nincs szükséged az összes pinre, akkor ezek is jók lehetnek: https://www.aliexpress.com/item/ST-Link-V2-Programming-Unit-mini-ST...8.html Saját nyákon úgysem szokta az ember az összes lábat kivezetni, illetve annak az ormótlan nagy csatlakozónak sincs hely. Ha rátudsz szánni egy kicsit többet, akkor rendes J-Linket itt tudsz venni: http://www.ak-modul-bus.de/cgi-bin/iboshop.cgi?showd0!0,41038701172...nk_EDU Én is itt vettem. 68,5€ volt szállítással együtt. A hozzászólás módosítva: Máj 27, 2018
Itt az első és második közt mi a különbség, termesztésen nem a méretre gondolok.
Kicsi olyan kis aranyos, hogy rögtön rendeltem belőle.. 628Ft-ot megér, hogy kipróbáljam. |
Bejelentkezés
Hirdetés |