Fórum témák

» Több friss téma
Fórum » ARM - Miértek hogyanok
 
Témaindító: gtk, idő: Jún 26, 2007
Lapozás: OK   158 / 177
(#) jefflynn hozzászólása Jún 5, 2021 /
 
Sziasztok,
próbálom beüzemelni az Eclipse for Embedded C/C++ Developers-t, egyelőre csak szórakozásból. A fordítás működik, a debug nem. A hibaüzenet a következő:
  1. Starting target CPU...
  2. ...Target halted (DBGRQ, PC = 0xFFFFFFFE)
  3. Reading all registers
  4. Removing breakpoint @ address 0x000106BC, Size = 2
  5. WARNING: Failed to read memory @ address 0xFFFFFFFE
  6. WARNING: Failed to read memory @ address 0x20004FFC
  7. Reading 64 bytes @ address 0x20004FC0
  8. WARNING: Failed to read memory @ address 0x20004FC0
  9. WARNING: Failed to read memory @ address 0x20004FF8
  10. Reading 64 bytes @ address 0x20004FC0
  11. WARNING: Failed to read memory @ address 0x20004FC0
  12. WARNING: Failed to read memory @ address 0x20004FF8

Valami tipp, hogy mi lehet ez? Ami feltűnik, az PC = 0xFFFFFFFE de miért?
(#) vargham válasza jefflynn hozzászólására (») Jún 5, 2021 /
 
Milyen mikrokontroller, milyen debugger?
(#) jefflynn hozzászólása Jún 5, 2021 /
 
Nuvoton m0 és jlink.
(#) icserny válasza jefflynn hozzászólására (») Jún 5, 2021 / 1
 
Nuvoton M0 és M23-hoz van ingyenes Keil (akár kereskedelmi célra is). Bővebben: Link
(#) jefflynn válasza icserny hozzászólására (») Jún 5, 2021 /
 
Tudom, azt használom. Ez csak játék.
(#) jefflynn válasza jefflynn hozzászólására (») Jún 5, 2021 / 2
 
Megoldódott. Hibás volt a linker script, és a stack nem létező memóriacímre került.
(#) jefflynn hozzászólása Jún 7, 2021 /
 
Újabb kérdés: hogyan kell jlink-el felprogramozni egy a bootloader területet akkor, ha a jlink device adatbázisában csak a fő flash bank van megadva? Ekkor ugyanis, amikor a boot területet akarom programozni, azt a hibaüzenetet kapom hogy "ERROR: Selected Data (0x100000 - 0x100FFF) does not fit into selected flash sectors.". A Keil megoldja, de most nem azzal szeretném.
(#) capaizee hozzászólása Júl 11, 2021 /
 
Én szórakozásból C++17 -el (CLANG/LLVM 12) akarok "baremetal" STM32F103 -ra programot írni lehetőleg lehetőleg annyira hatékonyra mintha mintha CMSIS segítségével írnák programot.
Minimális #define használattal, névterekkel, zero overhead stb.
Saját header file már generáltam magamnak.

Van rajtam még valaki aki szórakozott ilyesmivel?
pár dologgal még küzdök pl.: nem akarja elfogadni std lib array-t
#include <array>
(#) cross51 válasza capaizee hozzászólására (») Júl 11, 2021 /
 
Mire gondolsz, hogy nem akarja elfogadni az array-t?
Maga az include problémás vagy a class-t nem ismeri fel?
using namespace std; vagy using std::array; feloldás megvan?
(#) capaizee válasza cross51 hozzászólására (») Júl 11, 2021 /
 
maga headert kifogásolja .h vagy anélkül is:

<source>:2:10: fatal error: 'array.h' file not found
<source>:2:10: fatal error: 'array' file not found

Ha csak ezt adom meg akkor fordul:
-Oz -mcpu=cortex-m3

de ha másikat akkor nem:
-Oz -Wall --target=thumbv7m-unknown-none-eabi -mthumb -march=armv7m -mcpu=cortex-m3 -mfloat-abi=soft -mfpu=none

Szóval töröm a fejem hogy a target miért okozza hogy többet nem találja meg a headert
A hozzászólás módosítva: Júl 11, 2021
(#) cross51 válasza capaizee hozzászólására (») Júl 11, 2021 /
 
Annyit lehet megpróbálni, hogy explicit megadod a std header-ök include dir-jét, de én ilyen problémával nem találkoztam.
(#) capaizee válasza cross51 hozzászólására (») Júl 11, 2021 /
 
megpróbáltam de nem nagyon sikerült más fájlt hiányol de akkor megpróbálok ellenni nélküle.
Pedig meg akartam próbálni hogy GPIO MODE / CNF ből valami tömböt csinálok és hátha a fordító eltünteti.
mint ebben a videóban: https://www.youtube.com/watch?v=zBkNBP00wJE

vagyis GPIOA.mode[10] = GPIOA.MODE_INPUT; is lehet használni
GPIOA.CRH_MODE10 = GPIOA.MODE_INPUT ; mellett
és kódméretbe ugyanannyi lenne mintha
GPIOA->CRH |= ( 0x0 << GPIO_CRH_MODE10_Pos );
írnák

PS lehet ha nem inputot csinálok akkor jobb példa lenne
(#) cross51 válasza capaizee hozzászólására (») Júl 12, 2021 /
 
A bitset kell neked bár az nem biztos, hogy null overhead, de minimális szerintem.
Valami ilyesmi elgondolás (L4-es GPIO_Typedef-ből csináltam)
  1. #include <bitset>
  2.  
  3. struct GPIO
  4. {
  5.         std::bitset<32> MODER;       /*!< GPIO port mode register,               Address offset: 0x00      */
  6.         std::bitset<32> OTYPER;      /*!< GPIO port output type register,        Address offset: 0x04      */
  7.         std::bitset<32> OSPEEDR;     /*!< GPIO port output speed register,       Address offset: 0x08      */
  8.         std::bitset<32> PUPDR;       /*!< GPIO port pull-up/pull-down register,  Address offset: 0x0C      */
  9.         std::bitset<32> IDR;         /*!< GPIO port input data register,         Address offset: 0x10      */
  10.         std::bitset<32> ODR;         /*!< GPIO port output data register,        Address offset: 0x14      */
  11.         std::bitset<32> BSRR;        /*!< GPIO port bit set/reset  register,     Address offset: 0x18      */
  12.         std::bitset<32> LCKR;        /*!< GPIO port configuration lock register, Address offset: 0x1C      */
  13.         std::bitset<32> AFR[2];      /*!< GPIO alternate function registers,     Address offset: 0x20-0x24 */
  14.         std::bitset<32> BRR;         /*!< GPIO Bit Reset register,               Address offset: 0x28      */
  15. };
  16.  
  17. #undef GPIOA
  18. #define GPIOA               ((GPIO *) GPIOA_BASE)
  19.  
  20. int main()
  21. {
  22.         GPIOA->MODER[10] = 1;
  23.         GPIOA->MODER |= 1 << 10;
  24.         int moder = GPIOA->MODER.to_ulong();
  25. }


Viszont az undef miatt C-s könyvtárral gond lehet vagy annyit lehet csinálni, hogy
  1. #if defined(__cplusplus)
  2.  
  3. #undef GPIOA
  4. #define GPIOA               ((GPIO *) GPIOA_BASE)
  5.  
  6. #endif

viszont így a C-s könyvtár ami az original GPIOx-re hivatkozik annak előbb kell legyen inlcude-olva mint a C++-os könyvtár.
(#) capaizee válasza cross51 hozzászólására (») Júl 13, 2021 /
 
Köszi.

Bitsettel ugyanaz a gondom mint a array-al nem találja meg még a fordító. Na meg rájöttem közben hogy bitfield-re amugy se tudok se tudok referenciát se mutatót definiálni.
max majd később rápróbálok osztály és operátor overload-val megoldani..

C-s könytárt meg teljesen kihagyom
generáltam namespace + constexpr + stuct használatával saját headert amibe benne van összes regiszter.

A led villogtató program 2 verzióban teljesen ugyanannyi bájtra (utasításra) vagyis pici szinten megvan 0 overhead, minden inline amit lehet const vagy constexpr van definiálva
(CMSIS vs Saját header)

most a konstansokat adom a header mivel mivel svd file nem tartalmazza amiből készült a saját header.
Pl.:
CNF:
-
name: IN_ANALOG
value: "0b00"
description: Analog mode
-
name: IN_FLOAT
value: "0b01"
description: Floating input (reset state)
-
name: IN_PULL
value: "0b10"
description: Input with pull-up / pull-down.
(#) kubichris válasza jefflynn hozzászólására (») Szept 14, 2021 /
 
Szia.
Nuvotonhoz (NUC 100, NUC 120) nekem Keil + Nulink vállt be. Próbálkoztam a CooCox CoLinkMe és az ARM ULink Pro-jával is, de nem vállt be a NUC családhoz.
Bootloadert csak a NuLink-kel tudtam flash-elni.
NuLink-et érdemes valamelyik Nutiny/NuMaker board-dal megvenni, mert annyiba kerül úgy, mint külön a NuLink.
Krisz
(#) kiborg hozzászólása Okt 14, 2021 /
 
Sziasztok!
STM32 BluePill-t szeretnék használni.
Melyik alaplap kezelő a jobb ?
A githubos vagy a dan.drown féle ?

Köszi: Kiborg

https://github.com/stm32duino/BoardManagerFiles/raw/main/package_st...x.json

http://dan.drown.org/stm32duino/package_STM32duino_index.json
(#) icserny válasza kiborg hozzászólására (») Okt 14, 2021 /
 
Nálam a githubos van felrakva, de nem nagyon használom. Ebben a Blue Pill a Generic F1 series csoporton belül választható és van 32 KB, 64 KB és 128 kB változat.
Itt egy útmutató: Program STM32 Blue Pill (STM32F103C8T6) with Arduino IDE
A hozzászólás módosítva: Okt 14, 2021
(#) kiborg válasza icserny hozzászólására (») Okt 14, 2021 /
 
Köszi.
Mindkettőt felraktam, de a githubos a másokhoz képest sokkal tovább fordít. Ugyanarra a procira, egy egyszerű Blink programot.
(#) icserny válasza kiborg hozzászólására (») Okt 14, 2021 /
 
Arra vigyázz, hogy a szükségtelen dolgokat (UART és USB támogatás) tiltsd le a Tools menüben, ha nem kellenek.
(#) cimopata hozzászólása Okt 21, 2021 /
 
SZiasztok.

Segítséget szeretnék kérni mert teljesen feje tetejére állt a fejlesztő környezetem és nem tudom mi a baj.
STM32F030 8C procihoz generálnék kódot.
Cube MX telepítve a legújabb. (korábban is ez volt működött.
FW F030 v1.11.0 van telepítve.
Keil v5 erre pedig a 2.1 es driver
A képen látható hibát dobja ki:

a\a.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST.

Van esetleg ötletetek h egy miért van?
A hozzászólás módosítva: Okt 21, 2021
(#) gtk hozzászólása Okt 22, 2021 /
 
Sziasztok,

STM32 DMA. Lehet valamelyik DMA-val adatkonverziot csinalni ? 12b-bol kellene megtartani 8b MSB-t.
(#) bbb hozzászólása Okt 24, 2021 /
 
Sziasztok!

Vettem két porszívó LIDAR modult keletről, de persze nem akar megnyikkanni egyik se. A főpanelen gd32f130f8p6 mikrovezérlő van, ami megkapja a tápot (3.3V jut a VDD lábra), be is indul, de a panelen lévő az elvileg kommunikációra szolgáló lábakon nem sikerült még jelet kapnom, s a motort se kezdi pörgetni, hogy beinduljon a távolságmérő forgása. A motort külön kipróbáltam, az működik. Merre lenne érdemes keresni a hibát? A vezérlő SWDIO, SWCLCK lábai szépen ki vannak vezetve egy be nem forrasztott tüskesorra, gondolom ez lenne a JTAG kapcsolódási pontom (az ARM vezérlőkkel még nem játszottam), ezen, meg lehet valahogy támadni, hogy lássam mi történik? Egy mezei USB-TTL illesztő elég hozzá, vagy valami komolyabbat kellene használni ennez?
(#) jefflynn válasza bbb hozzászólására (») Okt 24, 2021 /
 
Nem JTAG hanem SWIO. USB-TTL nem lesz elég, jlink kell vagy valami hasonló programozó-debugger. Szerintem ez így reménytelen, inkább próbálj meg az eladótól segítséget kérni.
(#) bbb válasza jefflynn hozzászólására (») Okt 24, 2021 /
 
Na az sajnos esélytelen:
"Stock machine disassembly lidar,
The color is very good,
There is currently no data to study the special price processing,
There is no way to test good or bad,
The machine is dismantled from a stock new machine
The radar is all models and specifications,
Specially have a bubble protection bag,
So there are few scratches on the radar fuselage,
The radar power supply is 5V,
Radar red positive,
Black negative pole,
The other two should be TX and RX serial lines,
Don't know how to run it, if you mind, please don't buy it, thank you!"

Minden esetre egy levelet megér nekem, meg a hasonló lidarral foglalkozó discord csoportot is betámadtam, hátha valamelyik találkozott már ezzel

Na meg ezen kívül találtam egy github linket hozzá, ami talán majd eredményre vezet egyszer... Bővebben: Link
A hozzászólás módosítva: Okt 24, 2021
(#) jefflynn válasza bbb hozzászólására (») Okt 24, 2021 /
 
Hát sok szerencsét hozzá. Ez a kedvenc mondatom: "The color is very good". Zseniális Tipikus kínai eladó, semmit nem tud csak árulja. Megnéztem a linket, ők OpenOCD-vel programoznak, szóval kell valami openocd-képes hardware, vagy valami egyéb programozó.
(#) bbb válasza jefflynn hozzászólására (») Okt 24, 2021 /
 
Írtam az itthoni márkaképviseletnek, hátha nem teljesen titkos a soros protokoll, amit használnak és elárulnak belőle valamit. Jó lenne ebből a kütyüből egyetemi projektet csinálni és kiegészíteni 3D-re...
Gyakorlatilag amit a srác megtalált az annyi volt, hogy amikor elküld a kütyünek egy $ karaktert, akkor az elkezd kommunikálni. A motor bekapcsoló funkciót már nem találta meg, inkább a motort direktben hajtotta meg, később pedig csak átverte az érzékelőt és adogatta neki az impulzusokat, mintha forogna.
Meglátjuk mi lesz ebből, lehet, hogy semmi, de majd kiderül.
(#) bbalazs_ hozzászólása Okt 30, 2021 /
 
Sziasztok, kérdésem lenne:
Gd32f103rct6 -oson kellene kb 6-10 byte-ot tárolni kikapcsolt állapotban is.
Van-e erre bevált rutin vagy hogyan lehetne megtenni a flash írását/olvasását?
Külső soros tár nem jó, nincs már láb szabadon és hely sem.
Előre is köszi.
(#) jefflynn válasza bbalazs_ hozzászólására (») Okt 30, 2021 /
 
Gigadevice oldaláról le lehet tölteni egy csomagot, GD32F10x_Firmware_Library a neve, abban examples\fmc alatt van erre példa.
(#) bbalazs_ válasza jefflynn hozzászólására (») Okt 31, 2021 /
 
Nagyon köszönöm, megnézem.
Hova érdemes tenni, amit a program újraírás sem töröl?
(#) jefflynn válasza bbalazs_ hozzászólására (») Okt 31, 2021 /
 
A programmemória végére szokták, de ez nem garantálja hogy egy újraprogramozás nem törli.
Következő: »»   158 / 177
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem