Nigdy co prawda nie próbowałem ale jest teoretycznie taka opcja -fsso-struct=endianness gdzie parametr to "big-endian" lub little-endian". Nie za bardzo mogę sobie tez wyobrazić jej zastosowanie - ale moze ktoś mądrzejszy wytłumaczy jak jej użyć (o ile jest zaimplementowana). Sorki - to tylko dotyczy endianowości unii i struktur. Czyli mocniej : ja...
Czyli rozumiem iż analogicznie do powyższego little-endian byłby: 1000 ab 1001 78 Zgadza się mój tok rozumowania?? Zgadza się :)
w formacie double [IEEE754]: 0000000080C47040 -> 268,28125 503CD3D655B13740 -> 23,692716 ps. 0000000080C4E040 -> 34340 ----------- jak ktoś lubi cyferki: 0000000080C47040 [little-endian] 4070C48000000000 [big-endian] 0 10000000111 0000110001001000000000000000000000000000... znak: 0 [+] eksponenta: 10000000111 = 1031 (liczba znormalizowana)...
Tu nic się nie dzieje przy reinterpret_cast<> - ta konstrukcja nie narzuca żadnych dodatkowych operacji. Całą magię wykonuje static_cast<>, w ogóle pierwszy raz spotkałem się z taką formą. W sensie (jak to stwierdził kompilator) "multi-character character constant". Ten znak po prostu jest traktowany jak liczba. Więc zgodnie z konwencją...
Ramka MODBUS: 0103004400011FC4 (na widoku poprawnie). No ale przecież wszystko się zgadza - w pamięci masz 00 44, po poskładaniu w uint16_t wychodzi 0x4400 (little endian). 4\/3!! A jemu chodzi o to żeby było 0x0044, no ale w tym przypadku tak się nie da i nadal nie wierzę, że w takiej postaci struktura działała na 51 i AVR.
Zrobiłem sobie małą symulacje w konsoli Visual Studio i faktycznie efekt jest taki sam: [syntax=c] typedef struct { uint16_t adr_znak; char znak_c; }ADR_ZNAK; ostream & operator<<(ostream & os, ADR_ZNAK & x) { os << "adr_znak[uint16_t]:" << hex << x.adr_znak << " | " << "znak_c[char]:" << x.znak_c...
est przyjdą dwa - wartość traktowana jest jako 16 bitowa little-endian. big endian. Bo w przypadku little to by było 0x00b5
Chciałem pięknie skonstruować ramkę na strukturze, ale wszystko wskazuje że lepiej to zrobić na tablicach - mniej pracy dla uC... Spokojnie zastosuj struktury. Dla GCC użyj atrybutu do struktury: [syntax=c]__attribute__((packed))[/synta... Dla M$: [syntax=c]#pragma pack[/syntax] http://msdn.microsoft.com/en-us/library/... Jeszcze...
Nie nie, jeśli chcesz wczytać polski znak z pliku np. txt to wystarczy użyć szerokiego strumienia w trybie binarnym: wifstream plik_odczyt("nazwa.txt", ios::in|ios::binary)... i typowo binarnego czytania z pliku: plik_odczyt.read("gdzie", "ile bajtów"); Jak poznać długość pliku przy otwarciu...
Przejrzałem na szybko dump pamięci SPI Flash. Moje wnioski: 1) Wykorzystany chip to jakiś chip od MStara, ktoś wyżej pisał, że to MIPS. 2) Wykorzystany bootloader to prawdopodobnie MBoot, tj. ichni mocno przerobiony U-Boot. Można pokusić się o przeszukanie neta pod tym kątem. 3) Bootloader ma zaimplementowaną obsługę wbudowanego w chip 8051, który prawdopodobnie...
W pierwszym przypadku jak masz wybrane MSB to wysyła od najstarszego bitu bajtu z indeksem 1 (1) czyli: 7..0, 15..8, i 23..16 (liczac od zera bity) W drugin przypadku powinien wyslać podobno sekwencje tylko zacznie od bajtu najmłodszego zmiennej ( o ile bascom zapisuje zmienne w little endian ??) czyli tez : 7..0, 15..8, i 23..16 (liczac od zera) gdy...
Holding Registers od adresu 0 do 15. 0 Napięcie (0,1V), 1 Natężenie (0,1A), 2 Częstotliwość (0,1Hz), 3 Moc czynna (1W), 4 Moc bierna (1var), 5 Moc pozorna (1VA), 6 Współczynnik mocy (1000), 7 i 8 Energia czynna (1Wh), Decimal Long - little endian 9 i A Energia bierna (1varh), Decimal Long - little endian E Prędkość transmisji: 1-1200 2-2400 3-4800 4-9600...
Ok, dzieki, czyli adresy pozostawiam bez zmian? Doczytaj do czego odnosi się BE i LE. http://pl.wikipedia.org/wiki/Kolejno%C5%... Sam nagłówek powinien dać Ci już coś do myślenia. Dla Ciebie problem BE czy LE w ogóle nie powinien istnieć, to nie ten rodzaj układu. Zamiast BE i LE zwróć uwagę na MSB i LSB.
Bo procek little Endian i wysyłają strukturę danych bajt po bajcie z pamięci. Chciałem wiedzieć czy do tego EcoLinka jest jakiś soft na PC na którym można odczytywać dane z pieca, ewentualnie jakiś firmware się nim wgrywa to może jakiś wsad jest dołączony. Potrzebuję żeby sprawdzić to crc jak jest liczone, jeśli możesz to wyciągnij login hasło wiresharkiem...
[syntax=bash]bin2d19.exe path_to/fpga_nes.bin path_to/nes.d19 -n "NES" -sl "nes/*.nes" 0 -v "0.0.5"[/syntax] "-n" - nazwa w menu "-sl" - przesyłanie z SD do pamięci RAM (adres 0x0) w porządku little endian "-v" - wersja "nes/*.nes" - uruchom w katalogu "/nes" jeśli istnieje Wersja dla Windows nie była testowana. Daj mi znać, jeśli to działa.
Bo to jest właśnie little-endian (; https://en.wikipedia.org/wiki/Endianness...
A jeszcze dopytam się - jak sobie radzicie z big endian i little endian? Czy macie wykute na pamięć, które mc mają zapis pamięci taki, czy siaki?
W Twoim przypadku zapisujesz pierwszy (starszy) przychodzący bajt w dane_RX[1] a drugi (młodszy) - w dane_RX[0], bo, jak sam napisałeś, masz dane nadchodzące w big endian a AVR pracuje w little endian, więc musisz odwrócić kolejnośc bajtów w pamięci. I teraz możesz sobie przykładać wskaźnik do typu uint16_t tam, gdzie chcesz, czyli do tablicy dane_RX:...
Nie ma potrzeby ustawiać adresów zmiennych "na sztywno". Ponieważ Bascom dla zmiennych wielobajtowych , stosuje zapis typu Little Endian to kod może wyglądać tak: Dim Zmienna As Word Dim Zmienna_lo As Byte At Zmienna Overlay Dim Zmienna_hi As Byte At Zmienna+1 Overlay I nie obchodzi nas pod jakim adresem znajduje się Zmienna , bo kompilator zadba o...
Zachowanie które zaobserwowałeś jest wynikiem promocji zmiennych data1-4 do typu int, wykonaniu operacji na typie int, i konwersji na typ wynikowy. To co radzi kol. hotdog oczywiście zadziała. Ze swojej strony dodam, że avr-gcc jest beznadziejne w optymalizcji podobnych operacji "składania" zmiennych z bajtów. Dobrym (choć nieprzenośnym) sposobem zoptymalizowania...
Sprawa jest prosta - kolejność pakowania pól bitowych zależy od tego, czy mamy architekturę big-endian, czy little endian. Ponieważ obecne prawie cały świat jest little -endian, to problem istnieje tylko w superprzenośnym oprogramowaniu, czyli np. właśnie w Linuxie, który musi chodzi również na Power, zSystem i M68k (chociaż tego ostatniego już praktycznie...
Nie sadze, żeby istniało coś takiego, bo wtedy procesor musiałby posiadać dwie różne wersje instrukcji dodawania, mnożenia itp. jedną dla little endian, a drugą dla big endian.
Zczytaj pamięć ze znanym stanem licznika. Następnie daj mu popracować by licznik się zwiększył. Zczytaj ponownie i porównaj dane bajt po bajcie. Zrób nawet kilka razy i analizuj. Zazwyczaj jest to któryś z popularnych algorytmów CRC np. CRC16. Wpisuj do kalkulatorów dane licznika i porównaj ze zmianami jakie nastąpiły. Mogą to być dane dziesiętne ,hex,...
Zamiast dzielić lepiej przesuwać i andować unsigned int c; unsigned char a, b; a = c >>8; // pobieramy starszy bajt b = c&0xFF; // pobieramy młodszy bajt Ewentualnie można odwołać sie poprzez wskażniki (w tym wypadku jednak znaczenie ma ułożenie danych danego kompilatora big endian lub little endian) np: unsigned int c; unsigned char a, b; a =...
big endian i little endian odnoszą się do kodowania próbki na więcej niż jednym bajcie i okreslają kolejność zapisu liczby 16,24,32 bitowej opisującej próbkę w pamięci. Przy little endian bajty są zapisywane od najmłodszego (w miarę przyrostu adresu) a w big endian od najstarszego. http://www.cs.umass.edu/~verts/cs32/endi... Przy zapisie próbki...
Może się mylę ale jakby nie widzę tu bootloadera. binwalk -e bios1.bin DECIMAL HEXADECIMAL DESCRIPTION ----------------------------------------... 189648 0x2E4D0 Copyright string: "Copyright (C) 2000-2008 Broadcom Corporation." 207012 0x328A4 CRC32 polynomial table, little endian 262144 0x40000...
nie zadziała. Na stronie http://www.cplusplus.com/doc/tutorial/ot... masz bardzo czytelny przykłąd (najlepszy jaki znalazłem): One of the uses a union may have is to unite an elementary type with an array or structures of smaller elements. For example: union mix_t { long l; struct { short hi; short lo; } s; char c http://www.cplusplus.com/files/14-imguni...
A slyszales o czyms takim jak "Little Endian" i "Big Endian" ? Jesli nie, to niech Cie Swiety Google ma w opiece.
Jezeli out to DataOutput lub OutputStream a RaspberryPi jest little endian to powinno dzialac. Sprobuj na koncu out.flush().
Moja odpowiedź jest taka: Asembler - ciężki, na różne rodziny mikrokontrolerów musisz się uczyć innego (minimalne różnice), różne rodziny mają różną architekturę, ciężki do dużych projektów, ale za to pełna "kontrola" nad układem:D C - praktycznie na każdy mikrokontroler wygląda tak samo, drobne różnice polegające na innych bibliotekach, typach danych,...
Włączyłeś zegar dla CRC? Jesteś pewny, że wersja linuksowa używa wielomianu 0x04C11DB7? Może problem wynika z zamiany big/little endian?
Sam Sung, tak to można tylko na niektórych prockach, tych o organizacji zapisu/odczytu z pamięci typu Little Endian. To nie jest uniwersalne np. na Motoroli to nie zadziała.
SI bym się nie spodziewał. Dotarłem do dokumentacji którą chyba znasz. Nie doczytałem się. Jakaś ilość /strumień ramek. Przechwyć nagranie np znanego tonu sinusoidalnego, prześlij na pecet, poanalizuj choćby excellem. Radził bym to tego jakość telefoniczną, samplowanie 8KHz, 8bit PCM.read() In PCM_NORMAL mode, this function blocks until a full period...
Tak, jak pisałem wcześniej, wg dokumentacji powinieneś czytać DINT ID70 lub ID74. Jedyne nad czym będzie trzeba ewentualnie pomyśleć to kolejność bajtów w słowach (poszukaj Little Endian, Big Endian). Ogólnie wspomniane adresy, np. ID70 (4 bajty) składa się z: - dwóch słów IW70 i IW72, po dwa bajty każdy - czterech bajtów IB70, IB71, IB72, IB73 Z tego...
Nie wiem w czym macie problem ideologiczno merytoryczny ale sądziłem że Kicad to coś prostego (10 lat temu tak było)...ale widzę że próbuje być w czołówce profesjonalistycznych programów wąskiej , bardzo wąskiej dziedziny fachowców. A ja ciągle mam podstawowy problem z tłem...włosy mam siwe ale nie blond. Application: Pcbnew Version: (5.1.9)-1, release...
nizszy jako pierwszy w istocie [; . nizszy od 'nizszy adres'... 99% procesorow jest little endian, wiec w tych 99% przypadkow wychodzi na jedno. 4\/3!!
Tak, jest poprawne, z tym, że to czy odczytasz młodszy, czy starszy bajt (a właściwie mniej lub bardziej znaczący) zależy od ich ułożenia w pamięci, czyli endianess kompilatora. AVR-gcc jest little-endian, więc wszystko układa się od bajta mniej znaczącego.
moze unia? typedef union { uint8_t tablica[rozmiar calkowity]; struct { // twoja struktura }; } jakas_unia_t; tym sposobem nie trzeba rzutowac, wystarczy wysylac i odbierac tablice, a uzywac struktury normalnie... niemniej jednak jesli z jednej strony masz little-endian, a z drugiej big-endian, to nic specjalnego nie poradzisz... a tak wlasnie to wyglada......
>> mov dword ptr zmienna, eax dla mnie to dane znajdą się w dolnej połówce (little-endian).. dawno nie pisałem w asemblerze, ale powinna działać taka składnia; mov dword ptr zmienna+4, eax
Niestety zapomnieliście o jednej małej drobnostce. Forma zapisu zmiennych dword i long w Bascomi'e to little endian :). Więc wynikiem będzie: A(1) = &HDD A(2) = &HCC A(3) = &HBB A(4) = &HAA
Nie mam kompilatora pod ręką, ale może coś takiego: bajt = ((uint8_t*)(&adres)&... ? Update: Zmieniłem 3 na 0, bo z tego co pamiętam 8 bitowy AVR to Little Endian...
Leonov masz tu CFE_OOB Pioruna, tylko przerobiony na Little Endian. To powinno pasować jeśli Twoj programator zapisuje tylko dane w trybie raw. Przeróbka poprzez komendę: objcopy -I binary -O binary --reverse-bytes=4 CFE_OOB.bin CFE_OOB.LE.bin pod linuxem.
Gdzieś była konfiguracja JTAG autorstwa (at)xabean. Sprawiłem, że JTAG działa, to te same piny, które są używane do programowania SPI, więc nie musiałem niczego zmieniać. Wrzuć poniższą konfigurację do pliku bk7321t.cfg i uruchom openocd -f bk7321t.cfg, aby go uruchomić. source [find interface/raspberrypi2-native.cfg] ## https://docs.microsoft.com/en-us/win...
Zastanawiam się nad formatem, a raczej nagłówkiem pliku binarnego dla grafiki, docelowo także dla fontów. Uważam, że pierwszy bajt powinien informować o formacie zapisu piksela, kanale alfa, kompresji RLE oraz czy dane są little endian / big endian. Pierwsze 4 bity (od 0 do 3 bitu) identyfikują format zapisu piksela (monochromatyczny, odcienie szarości,...
Jeszcze raz: LBA:44696 (początek) + LBA: 3904896511 - zsumowałem i skopiowałem zsumowane sektory do pliku. Nic nie dało. Czyli kontener pofragmentowany (?) Jeszcze raz zacząłem czytać poradnik : http://obrazki.elektroda.pl/1211708900_1... idąc dalej za instrukcją z poradnika: nagłówek atrybutu - 80 00 00 00, rozmiar atrybutu - 78 00...
W helpie jest napisane ze mozna jej uzywac takze przy zmiennych zapisanych a pamieci PDATA. Pisze takze ze stosowany jest system little endian ktory sprawia ze mlodszy bajt zapisywany jest jako pierwszy. I w zasadzie tu konczy sie moj problem ;p
ISSI 423 Chyba coś kolega źle odczytał z tej kostki, google nic o tym nie mówi. Najpierw trzeba kostkę zidentyfikować, no i jeśli i2c no to jakiś programator który ją obsługuje. Odczytać zawartość, znaleźć identyfikator i podmienić (może być zapisany w formie little endian więc trzeba uważać).
Cześć szula! Najlepsze rezultaty uzyskałem ładując ten firmware pod adres 0xBFC00000, procek MIPS, little endian. Na początku znajduje się chyba loader, który rozpakowuje kod z offsetu 0x10000 (lub z jakiegoś innego miejsca). To tak na pierwszy rzut oka. -- Pozdrawiam :-D Virus [VHD]
Wracajac do tematu (http://www.elektroda.pl/rtvforum/topic1... o transmisji przez RSa pozostaje mi jedynie recznie zamieniac kolejnosc bajtow zmiennych z big na little endian w jednym systemie i tak przygotowane paczki wysylac. Dzieki za szybkie odpowiedzi Pozdrawiam
pokaż przykład pobrania z internetu poprzez GET i parsowania pliku binarnego w języku Javascript. Wczytaj z niego typ 16-bitowy integer oraz 32-bitowy integer. Witaj! Chętnie pokażę Ci, jak można pobrać plik binarny z internetu korzystając z metody GET i sparsować go w języku JavaScript, aby wydobyć z niego wartości typu 16-bitowego integer oraz 32-bitowego...
Faktem jest, że można podmienić crt0 lub przy kompilacji wskazać inny crt0. W crt0 dostarczonym z SDCC 3.5.0 rozkaz "LD SP, 0000h" jest pod adresem 0100h, po kompilacji wystarczy zmienić bajty 0101h i 0102h (adres stosu w kolejności little endian) na potrzebne w danym przypadku i program działa poprawnie, a stos jest we wskazanym miejscu.
Kłótnia jest zbędna. "rpal" zaproponował strukturę i ma po części rację. Jest to "eleganckie" rozwiązanie. jednak przy przesyłaniu danych między PC i kontrolerem powstaje od strony PC problem. wyrównanie danych to raz a drugie zgodność formatu zapisu danych (Big Endian /Little endian) od strony PC należy to przełożyć funkcjami na czystą tablicę char[]
A może w końcu zajrzysz do dokumentacji? Dlaczego ciągle zamieszczasz kod C jako C# ?
Przecież zmienna jeśli zajmuje 4 bajty, to można ją bezpośrednio załadować: var Liczba:LongInt; begin [..] comPort1.Read(Liczba, 4); [..] end; lub wysłać zmieniając Read na Write. W takim przypadku bajty zostaną wysłane w porządku little-endian, chyba że platforma wykorzystuje inny.
W radiach samochodowych pamięci microwire (czyli 93xx) odczytywało się w organizacji 16 bitowej. Nie pamiętam odczytu w organizacji 8 bitów ale możliwe, że jakiś radio tak miało. W wyświetlaczach Opla rzeczywiście w 8 bitowej i pin był jawny. Oczywiście, dla bezpieczeństwa, można odczytać pamięć w obu organizacjach (i zobaczyć różnice, jeśli pamięć...
albertb: Idąc tym tropem, każdy kompilator powinien z instrukcji a = 5 generować dwa takie same podstawienia, bo jakiś procesor może się pomylić i zignorować instrukcję. Jeśli specyfikacja architekury i ABI mówi, że stos ma być wyrównany, to ma być. Po to jest specyfikacja. Architektura ARM dopuszcza np. knwencję little-endian i big-endian, ale kompilatory...
Niestety nie mam pojęcia jak jest w DOS ale numer portu COM powinno się dać zmienić, gorzej z adresem. Ze względu na wiele pytań: Zmiana adresu w rejestrze nic nie da - przynajmniej mi się nie udało zrobić tak żeby działało. Najprawdopodobniej trzeba by było zmodyfikować bios i udostępnić te adresy co raczej nie wchodzi w rachubę. Jedynym dobrym rozwiązaniem...
Witam, A moze ktoś ma pomysł jak zaadresować zmienne typu char oraz int w całym zakresie pamięci EEPROM (2048bajtów). Podane procedury realizuja tylko zakres 8 bitów (256). Więc jest się o co bić. Poza tym podane procedury realizują zapis zmiennej typu int w formacie "little -endian" natomiast obecnie aktualnym formatem dla kompilatorów Raisonance jest...
zmienna = 2bajty_starsze SHIFT(zmienna, 16, LEFT) zmienna = zmienna OR 2bajty_młodsze Wszystko to pod warunkiem, że operujemy na formacie big-endian, a BASCOM z tego, co pamiętam używa formatu little-endian. Wobec tego takie coś można zrobić tylko na zmiennej, jeżeli trzeba zapisywać do pamięci (za pomocą poke), to kolejność bajtów trzeba odwrócić....
Oba pokazują poprawnie. Pamięć programu jest szesnastobitowa, a wyświetlane są bajty, czyli po osiem bitów. Taki podział na bajty jest "sztuczny". Wszystko sprowadza się do konwencji little-endian i big-endian . Dla świętego spokoju załaduj tam kawałek tekstu i zobacz, czy będą poprzestawiane litery. Pony-prog ma funkcję zamiany kolejności bajtów w...
Moze problem zwiazany z niezgodnoscia big-endian vs little-endian ? Co do problemu z forkiem to przyszlo mi do glowy ze lepiej i latwiej moze byc utworzenie dwoch watkow zamiast dwoch procesow. Jest to dosc proste przy uzyciu biblioteki pthread ktora prawie napewno znajduje sie w kompilatorze i na docelowej maszynie bo to linuxowy standard. Teraz nie...
IBM stracił trzech dużych klientów: Apple, Sony i Microsoft. Ciekawe, czy nową rodziną procesorów któryś z wielkich się zainteresuje. Bolączką rodziny Power (od G5) było to, że jedynym trybem organizacji pamięci było Big Endian. Na to wygląda, że "niebieski" zreflektował się i dostosował się do rynku i Power 8 obsługuje domyślnie (a może wyłącznie?)...
Nie generuje pliku *.hex, tylko *.elf, ale do pełnego debugowania wystarczy. Można wybrać tylko zapis Little-endian. Widać, że jest zakładka SFR do podglądu rejestrów (ODR z GPIOx itp.), bez konieczności szukania po adresie, ale cwaniacy zablokowali. Ogólnie jest to skonfigurowany Eclipse i tyle w temacie. Działa tylko z JTAG ST-Link i im pochodnych...
No to ja mam dokładnie ten sam build - ale CvPcb ni ma. Ciekawe, bardzo ciekawe.... Application: kicad Version: 0.201508250901+6122~28~ubuntu14.04.1-pro... release build wxWidgets: Version 3.0.2 (debug,wchar_t,compiler with C++ ABI 1002,GCC 4.8.4,wx containers,compatible with 2.8) Platform: Linux 3.13.0-63-generic x86_64, 64 bit, Little endian, wxGTK...
również. jeśli przeszukasz zrzut dla każdej z tych wartości hex w formacie little-endian https://obrazki.elektroda.pl/4960733800_... Dodano po 8 oto ona https://obrazki.elektroda.pl/7156483700_... nikt nie może mi wysłać tego cholernego arkusza danych i nie mogę go znaleźć. najbliżej jest nowszy Aimachip S710...
komendy do OpenOCD mam takie: # connect to the J-Link gdb server target remote localhost:2331 # Set gdb server to little endian monitor endian little # Set JTAG speed to 5 kHz monitor speed 5 # Reset the target monitor reset monitor sleep 100 # Set JTAG speed in khz monitor speed auto # Vector table placed in RAM monitor writeu32 0xE000ED08 = 0x20000000...
Można też po prostu nie rzutować, tylko "paskudnie przypisać float do unsigned long int. unsigned long int xi; float xf; xi = xf; Ale jest to rozwiązanie mało eleganckie i o ile dobrze pamiętam powoduje wygenerowanie przez kompilator ostrzeżenia. Sposób ze wskaźnikami, czy unią jest dobry, ale trzeba uważać na sposób przechowywania danych w pamięcie...
To że zapisuje Ci dane w odwrotnej kolejności wynika z architektury procesorów x86 które korzystają z formy zapisu danych little-endian-mniej znaczący bajt pierwszy. Jeżeli chcesz to odwrócić musisz kolejno dane "wyshiftować" w prawo, lub ewentualnie podzielić tak jak robisz(na jedno wyjdzie, natomiast operacje logiczne są szybsze i mniejsze). Czyli:...
Np cyfra 1 w float to 0x803F w HEX, czyli 32821 dziesiętne. Kompilatory to liczą, ale ja potrzebuje sam to liczyć (programuje mikrokontrolery). Czy jest gotowy program (jakiś kalkulator), czy muszę sam go napisać? Jeśli liczby floating point są zgodne z IEEE 754, to możesz użyć np [url=http://babbage.cs.qc.cuny.edu/IEEE-... kalkulatora....
Wszystko jest dokładnie jak na obrazku z pjrc.com. Początek opisu partycji zaczyna się od adresu 0x1be. Na obrazku też ma przesunięcie o 2 bajty. 0x1be: 1 bajt - MBR_Part1_BootFlag - pomijasz, ponieważ nie ma dla Ciebie znaczenia. 0x1bf: 3 bajty - MBR_Part1_CHS_Begin - pomijasz, ponieważ nie ma dla Ciebie znaczenia. 0x1c2: 1 bajt - MBR_Part1_TypeCode...
Czy dobrze wnioskuję? Na 99% źle, ponieważ Twój mikrokontroler - jeśli tylko nie jest jakimś czymś niekoniecznie popularnym używającym organizacji "big endian" - robi to dokładnie tak samo jak PC. Chyba że jednak nie napisałeś wcale wszystkiego i próbujesz dekodować jakiś protokół który ma określoną kolejność bajtów w zmiennych i _NIE_ jest to little...
Wyrzuciłem sumę kontrolną i wrzucanie na przetwornik zrobiłem po każdym odczytanym bajcie. Teraz gra zupełnie znośnie, ale trzeba by to jeszcze połączyć z timerem i przerwaniami, żeby proc mógł jeszcze inne rzeczy robić bo w tej chwili nudzi się między wrzucaniem kolejnych próbek na przetwornik. Jak by ktoś w kilku słowach mógł opisać o co dokładnie...
Application: Pcbnew Version: (2012-apr-16-27)-stable Build: wxWidgets 2.8.12 (no debug,Unicode,compiler with C++ ABI 1002,GCC 4.7.0,wx containers,compatible with 2.6) Platform: Linux 3.13-1-686-pae i686, 32 bit, Little endian, wxGTK Options: USE_PNG_BITMAPS=ON KICAD_GOST=OFF USE_WX_GRAPHICS_CONTEXT=OFF USE_WX_OVERLAY=OFF USE_BOOST_POLYGON_LIBRARY
Proszę bardzo. Wybierz jedną z funkcji zależnie czy to little czy big endian. A ten ostatni wygaszony bit? Tyczy się liczby 32bitowej czy każdego bajtu już w tablicy? zmienna32 &= 0x7fffffff; lub tablica[x] &= 0x7f; [syntax=c] unsigned long int zmienna32; uint8_t tablica[4]; void zamiana1() { tablica[0] = zmienna32; tablica[1] = (zmienna32 >>...
Faktycznie, ten moj debug byl troche bez sensu zmienilem fragment: [syntax=c] /* przygotowanie instrukcji avr jest little-endian*/ Instruction = ( uint16_t ) x.tab[i]; Instruction |= (( uint16_t ) x.tab[i+1] <<8); /* Przeslanie instrukcji z powrotem do komputera */ USART_Transmit( (uint8_t)(Instruction) ); USART_Transmit( (uint8_t)(Instruction...
U mnie to PIC32 czyli MIPS. Problem dodatkowy to taki, że dane ładowane do bufora są odczytywane z karty SD, a tam jest plik typu WAVE, gdzie dane są w formacie little endian..... Musze odwracać - albo przed wpisaniem do bufora albo po pobraniu z niego... W tej chwili jest "po pobraniu" z bufora - jak we fragmencie wyżej, a chyba będę musiał zamienić...
(at)miszcz310 jednak widzę, że lubisz się katować. Jakoś przywykłem do pisania w atomie lub vimie i tylko zmapowanymi klawiszami myk. Zainstaluj sobie np. https://marketplace.eclipse.org/content/... i masz vim-a w eclipse. Ale jeżeli już naprawdę chcesz to debugować to wydrukuj sobie informacje dwarf (dwarfdump-em np), zobacz czy te symbole...
Nie. char *bajtpobajcie = (char*)&Pomiar; char czwartybajt = bajtpobajcie[3]; I tutaj znowu, zakładając, że unsigned long ma 32bity odczytujemy w zależności od kolejności bitów albo najmłodszy bajt (BIG ENDIAN), albo najstarszy (LITTLE ENDIAN). Zapis zmiennej jest istotny tylko w przypadku przesyłania informacji pomiędzy różnymi nie...
Są funkcje sscanf i sprintf; pytanie, co ma oznaczać zapis binarny - czy napis złożony z cyfr '0' i '1' (sprintf tego nie ma - trzeba by go zrobić ręcznie), czy postać, jaką mają zmienne używane przez program. A liczba może być reprezentowana jako całkowita 8-, 16-, 32-, albo 64 bitowa, albo jako zmiennoprzecinkowa 32-, 64-, albo 80-bitowa, i od tej...
i skoro to działa to lepiej by było gdyby zmienne miały ten sam adres - to by działało "samo z siebie" bez kodu programu (i to w obie strony -> na czym mi zależy )... Kolega Dżyszla wspomniał że nie lubi takich rozwiązań. I słusznie. Ja dodam od siebie argument, dlaczego nie powinno się tak robić: W systemach komputerowych istnieją różne organizacje...
Zgadza się. Nie napisałem, że takie "sztuczki" najczęściej można spotkać w kodzie na AVRy. Lepiej jest odczytać obie 8 bitowe części zmiennej z osobna, a później bardziej znaczący bajt przesunąć o 8 bitów lub pomnożyć przez 256: [syntax=c] id = (uint16_t)(restart[2]<<8) + restart[1]; [/syntax] lub [syntax=c] id = (uint16_t)(restart[2]*256) + restart[1];...
... Na tym etapie nauki warto dodatkowo zaznajomić się pojęciem unii ... W powyższym kodzie szczególnie ta druga unia może być przydatna, bo ładujesz dane 8 bitowe, i od razu masz 16 bitowe. Przy takim wykorzystaniu C warto od razu przyswoić pojęcia Big i Little Endian, bo na pewno w przyszłości z nimi się spotkasz. Popieram naukę o unii, strukturze...
Coś tu kolego namieszałeś. Prosty test - czy dla W = 1 dostaniesz to samo na wyjściu, co na wejściu? A dla wzmocnienia W = 0, czy dostaniesz same zera? A dla wzmocnienia W = inf co się stanie? Poza tym próbki w pliku WAV który zaczyna się od nagłówka RIFF są przechowywane w formacie little-endian. Tylko próbki 8-bitowe są przechowywane w formacie unsigned...
Jest to pozycja .data pozycja .txt jest to zajetosc pamieci flash .text 15646 B (flash) .data 884 B (ram) w eepromie mozna przechowywać tego typu dane i nie tylko, kwestia jak je będziesz rozumiał. z avr-libc-user-manula: 6.12.3.3 uint16_t eeprom_read_word (const uint16_t ∗ addr) Read one 16-bit word (little endian) from EEPROM...
Witam! Nie mogę nawiązać połączenia Modbus RTU pomiędzy sterownikiem Eaton EASY-E4-DC-12TC1 Gen. 6 wer. opr. 1.44 z rozszerzeniem EASY-COM-RTU-M1 (Master) a licznikiem prądu FF LE-01M (Slave). Korzystam z easySoft 8 (ver. 8.25). Parametry komunikacji Master i Slave takie same: https://obrazki.elektroda.pl/8206764600_... https://obrazki.elektroda.pl/6393773000_...
Witam Próbuję odpalić sobie płytkę EFM32 STK, która ma w sobie JLinka. Na IAR wszystko działa dobrze. W Eclipsie kompiluje mi się projekt, ale z debuggowaniem nie jest ok. Mam zainstalowane sterowniki do # connect to the J-Link gdb server target remote localhost:2331 # Set gdb server to little endian monitor endian little # Set JTAG speed to 30...
Jednak, żeby nie bawić się w ręczne maskowanie, co naraża na błędy i jest niewygodne przy jakichkolwiek zmianach, proponuję zastosować struktury i pola bitowe. Definiujesz sobie strukturę typu: [syntax=c] struct bf { uint8_t lownibble : 4 uint8_t highnibble : 4; }; [/syntax] i nie ma problemu z maskowaniem, kompilator o wszystko dba automatycznie. Piszesz...
Rozwiązanie drugie które napisałem, praktycznie w postaci aktualnej nadaje się do przerwań - dodać tylko jedną zmienną która będzie informować ile aktualnie odczytano bajtów i samą funkcję update_bit można wywoływać po razie w przerwaniu, jako trzeci argument podając odczytany bit. Równie dobrze można przekształcić rozwiązanie pierwsze wyciągając z...
CZy Fclock jest stały ? W takim wypadku wystaczy wynik z dzielenia \frac{2^{32}}{F_{CLOCK}} (też stała) mnożyć przez F_{OUT} - z pewnością uzyskana liczba będzie miała mniejszą objętość. Co do długości liczb, to każda składa się z 8-bit bajtów umownie zesobą powiązanych jako forma zapisu (np. Little Endian - pierwszy bajt z kolei ma największe znaczenie...
Czcionka Lucida Console jest ok. Ta nie dała dobrego efektu ale zacząłem sprawdzać inne i sprawdziłem u kolegi wyżej :D Najlepiej sprawdziła się czcionka "consolas" i "courier news" https://obrazki.elektroda.pl/9985339800_... Jeszcze mam takie może głupie pytanie, ale nie rozumiem tego: Store value/string to EEPROM – EEPROM valid...
Weekend minął, udało się dokonać paru "odkryć" :) Moim celem jest zaczytanie ilości pobranej wody za pomocą na maksa budżetowego rozwiązania - CC1101 + ESP8266 Oto moje znaleziska, może komuś pomogą: 1. Po zaaplikowaniu konfiguracji CC1101 stąd: https://github.com/heliflieger/a-culfw/b... moduł zaczął "łapać"...
Wspominam teraz, że czytałem o używaniu jakiegoś pliku elf CK-Link wgranego do STM32, dzięki czemu można zrobić tani debugger CK-Link. Nie wiem jednak, czy tryb debugowania = dostęp do pamięci flash. Jest kilka artykułów na ten temat. np. https://en.eeworld.com.cn/bbs/thread-119... https://hackaday.io/page/12671-how-to-de...
Szuka sam, ale kryteria ty definiujesz manewrując opcjami linkera. Definicje tych funkcji są w plikach libc.a. Ale tych plików możesz mieć w systemie kilka. Pytanie czy Twój projekt dołącza tą biblotekę (może nie dołączać, gdy np użyjesz opcji linkera -nostdlib) a jeśli dołącza czy prawidłową (wybór zależy od opcji kompilacji/procesora). Być może nie...
Miałem nadzieję, że to tylko rebranding urządzenia CK-Link. Może tak jest, a ja nie mam właściwego procesu z CK-Link. Zamówiłem jeden z Taobao, więc powinien dotrzeć w ciągu kilku tygodni. To dotarło, ale ostatecznie nie było potrzebne do odczytu / zapisu flash. CK-Link: https://obrazki.elektroda.pl/8667410400_... Nie zgłębiałem jeszcze...
Witam, Zakupiłem zestaw z prockiem STM32F103ZET6 + TFT + jtag j-link segger i mam pewien problem: Skonfigurowałem środowisko Keil uVision 4 do pracy z j-link'em według manuala ze strony Keil'a i podczas aktywacji opcji FLASH DOWNLOAD w build window wyświetla mi sie: Load "..\\Obj\\test.AXF" Set JLink Project File to "C:\projekty\arm\JLinkSettings....
Z kombinowaniem chodziło mi dokładnie o coś takiego, żeby wynik pokazywany był jako Signed Integer od -32768 do 32767, ale domyślnie do integera brane są 4, a nie 2 bajty pamięci dlatego widoczny wynik był zupełnie inny niż wartości w tablicy. http://obrazki.elektroda.pl/3317665300_1... Co do pamięci napisałem program, który to konwertuje...
Tak, to wiem, ale funkcja będzie pobierać dane wg swojej deklaracji czy wg deklaracji tablicy? Według swojej deklaracji. Jeżeli przekażesz do funkcji tablice: [syntax=c] uint8_t tab[] = {0x14, 0x2A, 0x56, 0xDF}; [/syntax] to w funkcji odczytasz przez wskaźnik na zmienna 16 bitowa (zakładając ze procek jest little endian): [syntax=c] font[0] - 0x2A14;...
Pierszy starszy bajt drugi młodszy - tego ofsetu Duży endian może być kłopotliwy. Zdaję sobie sprawę, że na 8bitowych mikrokontrolerach może być łatwiej przetwarzać bajty gdy są one w tej kolejności, ale dla systemów >=16bit taka kolejność wymusza zbędny narzut, bo przecież łatwiej postawić wskaźnik na u16 w konkretne miejsce bufora i sobie stamtąd...
W "normalnym" C byłoby tak: /* wskaznik -jakiś wskaźnik */ lsb = (unsigned int)wskaznik &0xff; msb = ((unsigned int)wskaznik >> 8) & 0xff; mozna też stworzyć sobie typ: np: typedef union{ char *wsk; short int adres; struct{ unsigned char lsb; unsigned char msb; }; } wskaznik; wówczas np: wskaznik w; w.wsk - wskaznik w.adres - wartosc wskaznika...
Podobny problem ale bez asteriska rozwiązałem na routerze Multilink. Router, serwer www, poczty i plików w jednym dla 40 userów z łączem WAN 10Mbit. Proponuję do przetestowania na okres np. 2 tyg. wypożyczyć router MultiLink2 MAX z Goramo w obudowie Rack 19" 1U z wbudowanym dyskiem SSD np. 32GB na którym można postawić zwykłego Debiana (little endian)....
format endian stm32 endian wilson little
sterownik pulse licznik civic automaty vendingowe
pralka samsung zawiesza wiertarka prosta
Lokalizacja rezystora dmuchawy w Peugeot Partner 2014 Jak ominąć fotokomórki w napędzie bramy Nice Robo 1000