Hirdetés
- SONY LCD és LED TV-k
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Azonnali processzoros kérdések órája
- Fejhallgató erősítő és DAC topik
- Rémisztő árakkal szembesülnek a notebookgyártók az új mobil platformoknál
- Projektor topic
- Pánik a memóriapiacon
- TCL LCD és LED TV-k
- Akciókamerák
- Xiaomi Mi Box androidos médialejátszó 4K és HDR támogatással
-
PROHARDVER!
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
Teasüti
nagyúr
Sziasztok ismét!
Kérhetnék egy kis segítséget a stack pointer megértésében?
Annyit tudok róla, hogy the stack pointer is a small register that stores the address of the last program request in a stack.
Valamint átrágtam magam ezen a bevezetőn a pointer-ek használatáról.
Ez alapján úgy sejtem az SP egy uint16_t változóval egyenértékű regiszter, hisz 256-nál több bájt van az SRAM-ban.
Korrekt?
Egy új sketch-ben a Serial.println(SP) nekem 2297-et ad, ami egyrészt egy 16 bites szám, másrészt meg mi a fene?? Nem 2KB SRAM van csak az Atmel 328p-ben?Nem értem továbbá, hogy a stack és heap size vizsgálatakor miért így deklarálják a változókat, ahogy:
void check_mem() {
//uint8_t * heapptr, * stackptr; // I declared these globally
stackptr = (uint8_t *)malloc(4); // use stackptr temporarily
heapptr = stackptr; // save value of heap pointer
free(stackptr); // free up the memory again (sets stackptr to 0)
stackptr = (uint8_t *)(SP); // save value of stack pointer
}A stackptr egy pointer, az SP is egy pointer, stimmt.
De ez miért így van: stackptr = (uint8_t *)(SP); ??
Miért 8 bites? Nálam így a 2297-ből 249 lesz, csak épp azt nem értem ez hogy a fenébe lenne már kívánatos eredmény, amikor itt a 2297 csordul túl, vagyis korrupt adat.
Na meg sehogy nem tudok rájönni hogy tudom kiíratni Serial-ol az SP-n lévő adatot.
Nálam ez hibát dob:uint16_t report;
report = *SP;
Pedig elvileg ez az SP dereference volna a pointer tutorial szerint, vagyis ezen a címen lévő adatot kéne visszaadnia.exit status 1
invalid type argument of unary '*' (have 'uint16_t {aka unsigned int}')És ami még furább, hogy az alábbi pár sor 16 bites számot ír ki a monitorra:

register uint8_t *upStack;
upStack = (uint8_t *)SP;
Serial.println((int)upStack);Nagyra értékelnék egy kis iránymutatást, már egy ideje a netet túrom emiatt, de csak random fórum posztokat találok kevés átfedéssel.

Új hozzászólás Aktív témák
- Építő/felújító topik
- SONY LCD és LED TV-k
- Kiadta Sam Altman a parancsot: bajban a ChatGPT!
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Hardcore pizza és kenyér topik
- Spórolós topik
- Azonnali processzoros kérdések órája
- gban: Ingyen kellene, de tegnapra
- Fejhallgató erősítő és DAC topik
- Rémisztő árakkal szembesülnek a notebookgyártók az új mobil platformoknál
- További aktív témák...
- Apple Watch SE (2024) Eladó
- Qnap TS-463U, 4 magos AMD CPU, 2x2TB WD Red, 8GB, 2x10GB sfp, 4x 1GB LAN
- Dji Goggles 3 garanciával/ Neo2, Neo, Avata2, Mini 4 Pro, Air3 / Dji Beszámitás lehetséges
- IPAD Mini 2 64GB Wifi+Cellular, Szép állapot, üzletből, garanciával
- Latitude 5550 15.6" FHD IPS Ultra 7 165H RTX 2050 32GB 1TB NVMe ujjlolv IR kam gar
- HP ZBook Fury G7 Intel Core i7-10850H Refurbished - Garancia
- HP 14 Elitebook 640 G10 FHD IPS i5-1345U vPro 10mag 16GB 512GB SSD Intel Iris XE Win11 Pro Garancia
- Sima Vs.Windows Logitech Mx keys s plus és hagyományos Mx keys magyar bemutatása. Új videó linkel
- Vadiúj AM 4 procik! Raktáron! Kamatmentes rèszletre is! ÈRDEKLŐDJ!
- Apple iPhone 14 Pro Max 256GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


ekkold

