Autor |
Zpráva |
prikrylm
|
Napsal: ned 12.01.2020 12:56 |
|
Mecenáš serveru
|
|
|
Registrován: 6.1.2012 Příspěvky: 3666 Bydliště: Řečkovice Obrázky: 0
|
Hraju si s FS-T6 a narazil na (pravděpodobně) uprevený er9X firmware pro FS-T6. Prý z toho dostal osmikanál. Nemáte někdo přeloženou binárku? Nebo jsem blbě hledal a je tam? Nechce se mi budovat celé prostředí pro kompilaci FW. Rozchodit zápis a čtení FW už se mi podařilo. Díky za každé nakopnutí...
_________________ (šroubovák | kleště | měřák | pájka | drátky | poletuchy | 24ch volantovka)
|
|
Nahoru |
|
|
|
|
|
sky59
|
Napsal: ned 12.01.2020 16:22 |
|
Mazák
|
|
Registrován: 21.9.2015 Příspěvky: 991
|
prikrylm píše: Hraju si s FS-T6 a narazil na (pravděpodobně) uprevený er9X firmware pro FS-T6. Prý z toho dostal osmikanál. Nemáte někdo přeloženou binárku? Nebo jsem blbě hledal a je tam? Nechce se mi budovat celé prostředí pro kompilaci FW. Rozchodit zápis a čtení FW už se mi podařilo. Díky za každé nakopnutí... Asi sa tomu nevyhnes... Skus ci najdes hotovy cross toolchain pre stm32, potom by to bola na ubuntu malina...
|
|
Nahoru |
|
|
sky59
|
Napsal: pon 13.01.2020 9:30 |
|
Mazák
|
|
Registrován: 21.9.2015 Příspěvky: 991
|
mal som svetlu chvilku tak som ti to prelozil pokial mas zaujem tak je to v prilohe
tu je log z prekladu:
user@user-HP-ProDesk-400-G4-MT:~/stm32/ar-t6-master/firmware$ make clean && makerm -rf system/startup_stm32f10x_md_vl.o peripherals/src/stm32f10x_dma.o peripherals/src/stm32f10x_dbgmcu.o peripherals/src/stm32f10x_iwdg.o peripherals/src/stm32f10x_dac.o peripherals/src/stm32f10x_can.o peripherals/src/stm32f10x_rtc.o peripherals/src/stm32f10x_pwr.o peripherals/src/stm32f10x_i2c.o peripherals/src/stm32f10x_sdio.o peripherals/src/stm32f10x_rcc.o peripherals/src/stm32f10x_flash.o peripherals/src/stm32f10x_crc.o peripherals/src/stm32f10x_usart.o peripherals/src/stm32f10x_tim.o peripherals/src/stm32f10x_cec.o peripherals/src/misc.o peripherals/src/stm32f10x_wwdg.o peripherals/src/stm32f10x_adc.o peripherals/src/stm32f10x_spi.o peripherals/src/stm32f10x_bkp.o peripherals/src/stm32f10x_exti.o peripherals/src/stm32f10x_fsmc.o peripherals/src/stm32f10x_gpio.o system/core_cm3.o system/system_stm32f10x.o settings.o strings.o lcd.o main.o system.o pulses.o gui.o debug.o sticks.o keypad.o tasks.o eeprom.o sound.o mixer.o icons.o usart.o peripherals/src/stm32f10x_dma.d peripherals/src/stm32f10x_dbgmcu.d peripherals/src/stm32f10x_iwdg.d peripherals/src/stm32f10x_dac.d peripherals/src/stm32f10x_can.d peripherals/src/stm32f10x_rtc.d peripherals/src/stm32f10x_pwr.d peripherals/src/stm32f10x_i2c.d peripherals/src/stm32f10x_sdio.d peripherals/src/stm32f10x_rcc.d peripherals/src/stm32f10x_flash.d peripherals/src/stm32f10x_crc.d peripherals/src/stm32f10x_usart.d peripherals/src/stm32f10x_tim.d peripherals/src/stm32f10x_cec.d peripherals/src/misc.d peripherals/src/stm32f10x_wwdg.d peripherals/src/stm32f10x_adc.d peripherals/src/stm32f10x_spi.d peripherals/src/stm32f10x_bkp.d peripherals/src/stm32f10x_exti.d peripherals/src/stm32f10x_fsmc.d peripherals/src/stm32f10x_gpio.d system/core_cm3.d system/system_stm32f10x.d settings.d strings.d lcd.d main.d system.d pulses.d gui.d debug.d sticks.d keypad.d tasks.d eeprom.d sound.d mixer.d icons.d usart.d system/startup_stm32f10x_md_vl.d ar-t6.bin ar-t6.elf ar-t6.map Cleaned up system/startup_stm32f10x_md_vl.S peripherals/src/stm32f10x_dma.c peripherals/src/stm32f10x_dbgmcu.c peripherals/src/stm32f10x_iwdg.c peripherals/src/stm32f10x_dac.c peripherals/src/stm32f10x_can.c peripherals/src/stm32f10x_rtc.c peripherals/src/stm32f10x_pwr.c peripherals/src/stm32f10x_i2c.c peripherals/src/stm32f10x_sdio.c peripherals/src/stm32f10x_rcc.c peripherals/src/stm32f10x_flash.c peripherals/src/stm32f10x_crc.c peripherals/src/stm32f10x_usart.c peripherals/src/stm32f10x_tim.c peripherals/src/stm32f10x_cec.c peripherals/src/misc.c peripherals/src/stm32f10x_wwdg.c peripherals/src/stm32f10x_adc.c peripherals/src/stm32f10x_spi.c peripherals/src/stm32f10x_bkp.c peripherals/src/stm32f10x_exti.c peripherals/src/stm32f10x_fsmc.c peripherals/src/stm32f10x_gpio.c system/core_cm3.c system/system_stm32f10x.c settings.c strings.c lcd.c main.c system.c pulses.c gui.c debug.c sticks.c keypad.c tasks.c eeprom.c sound.c mixer.c icons.c usart.c Linking ar-t6.elf text data bss dec hex filename 81776 56 4520 86352 15150 ar-t6.elf Producing binary ar-t6.bin
|
|
Nahoru |
|
|
prikrylm
|
Napsal: pon 13.01.2020 13:21 |
|
Mecenáš serveru
|
|
|
Registrován: 6.1.2012 Příspěvky: 3666 Bydliště: Řečkovice Obrázky: 0
|
Díky za snahu, sám jsem se k tomu ještě nedokopal (resp už jsem stvořil virtuální stroj se svým oblíbeným Debianem). Rádio se tváří, že má akorát 64kB EEPROM, tak nevím, jestli se mám vůbec pokoušet do ní dostat přes 80kB binárku... V každém případě ještě jednou díky za snahu, až se potkáme, máš u mě pivo. (Ale musíš se připomenout. )
_________________ (šroubovák | kleště | měřák | pájka | drátky | poletuchy | 24ch volantovka)
|
|
Nahoru |
|
|
sky59
|
Napsal: pon 13.01.2020 13:55 |
|
Mazák
|
|
Registrován: 21.9.2015 Příspěvky: 991
|
ak mas original bin file, mozes to skusit otvorit v napr. HeX editore, ze nakolko sa podobaju oba bin subory, minimalne tie udaje na zaciatku bin suboru vyzeraju ako nejake vektory do pamate.. a nie je eeprom iba na uzivatelske udaje? nastavenia? na program sa vacsinou pouzivaju flash pamate... asi musis pozriet ze aky typ je presne vo vnutri, vid priloha, existuje aj s 128kB flash
Přílohy: |
Unbenannt.jpg [ 73.74 KiB | Zobrazeno 4451 krát ]
|
|
Naposledy upravil sky59 dne pon 13.01.2020 14:22, celkově upraveno 1
|
|
Nahoru |
|
|
prikrylm
|
Napsal: pon 13.01.2020 14:13 |
|
Mecenáš serveru
|
|
|
Registrován: 6.1.2012 Příspěvky: 3666 Bydliště: Řečkovice Obrázky: 0
|
Možná jsem pomotal termity (takže ne EEPROM ale Flash?) "Tool" píše "Flash size 64kB". Vnutil jsem tu ten dodaný bin a neprotestoval a cosi přes sériovku poslal. Ale něco dělám špatně, firmware zůstal nezměněný. Jdu studovat dál... (orig obsah procesoru je v příloze...)
_________________ (šroubovák | kleště | měřák | pájka | drátky | poletuchy | 24ch volantovka)
|
|
Nahoru |
|
|
sky59
|
Napsal: pon 13.01.2020 14:36 |
|
Mazák
|
|
Registrován: 21.9.2015 Příspěvky: 991
|
obsah originalneho suboru suhlasi s architekturou co mi vygeneroval ten "novy" zdrojak, naviac uzitocne data su menej ako polovica tj. 32kB pokial mas 64kB procesor tak ten "novy" tam urcite nevojde musel by byt verzia 128kB, ale to najlepsie poznas ak to precitas co je na nom napisane, ci "8" alebo "B" EDIT: a toto je uplne najzaujmavejsia stranka! https://openrcforums.com/forum/viewtopi ... 5&start=30tvrdia tu, ze aj ked je napisane na nom "8" tak ma 128kB !? myslia si, ze sa im nechcelo menit produkciu...
|
|
Nahoru |
|
|
prikrylm
|
Napsal: pon 13.01.2020 22:00 |
|
Mecenáš serveru
|
|
|
Registrován: 6.1.2012 Příspěvky: 3666 Bydliště: Řečkovice Obrázky: 0
|
Podle nápisů na čipu a reportu programovacího nástroje je to 64kB. Byl jsem drzý a palič nastavil na 128kB a pustil. Tipnu, že kdyby byl 64kB, tak se vysílačka buď vůbec nerozjede nebo něco bude hodně špatně fungovat. Nic méně po zapnutí se rádio jeví funkční 8ch. Přijímač na 8ch (zatím) nemám, takže 7 a 8ch neověřím. EEPROM na modely nesmazal, takže vidím nějaký šum typu model 5 jménem "dddd:`" a podobně, ale init modelu nebo přejmenování zafunguje. Jinak takový ořezaný ER9X. 8 kanálů, 14 modelů, dual rate a vstupní křivky ala ER9X, funkční mixer s možností volit řádek mixu zapnutým vypínačem, takže primitivní režimy letu taky půjdou, křivky 5 a 9 bodů (celkem pracné je nastavit), fungují timery, pípá to, svítí to. Nefunguje heli mix (to autor psal), nefungují logické fce (asi taky nemělo), nejsou na konci vzory modelů. Občas z ničeho nic vyskočí okno "zkalibrujte kniply" i když jsou zkalibrované, ale na funkci nemá vliv Ještě zkusím jak funguje vstupní a výstupní PPM nakonektoru (pak by mohl fungovat učitel-žák) a zkusím zjistit jestli se dá udělat další flash (dostat vysílačku do režimu updatu FW) aniž bych musel dávat ručně procesor do resetu... Dnešní závěr: opětovné díky za kompilaci pro sky59, vypadá to funkční - za typ prachy* super. A navíc spousta hraní. Žejo. ---- * cca 150-200 Kč Tož tak.
_________________ (šroubovák | kleště | měřák | pájka | drátky | poletuchy | 24ch volantovka)
|
|
Nahoru |
|
|
sky59
|
Napsal: úte 14.01.2020 5:31 |
|
Mazák
|
|
Registrován: 21.9.2015 Příspěvky: 991
|
Takze super a navyse bude pravda s tou velkostou flash ze je vo vnutri fyzicky vacsia ale predavaju to za mensiu cenu ako 64kB, naco by si komplikovali vyrobny proces cipu?
EDIT: rozpraval som sa s kolegom o tomto pripade a on vie s URCITOSTOU ze Microchip to robi rovnako: vyrabaju vzdy kremikove chipy (die) s maximalnou flash-kou, avsak testuju iba nejaku cast, pretoze test je z vyrobneho procesu najdrahsi, a potom to predavaju ako velkost pamate co otestovali, to ale vobec neznamena ze by cela flash-ka nemala byt v poriadku
|
|
Nahoru |
|
|
prikrylm
|
Napsal: úte 14.01.2020 20:34 |
|
Mecenáš serveru
|
|
|
Registrován: 6.1.2012 Příspěvky: 3666 Bydliště: Řečkovice Obrázky: 0
|
Jestli je drahý test, tak se to dá pochopit. Ještě jsem dneska zkusil "návrat k původnímu FW", takže jsem na tamní 20-ti pin napájel nějaké piny, přidal drátek, co BOOT0 napojí na +3,3v + další piny, aby se dal proces zápisu FW napájet z programátoru a nemusela se připojovat baterka a zpětný flash zafungoval. (Musím se pochválit ) Ten AR FW je trochu nevyladěný. Jak jsem psal, že občas vyskočí okýnko "zkalibruj páky", tak pokud se tak stane při brouzdání v menu, tak tahle akce nějak zasahuje do EEPROM (vynuluje?) a minimálně "rozkalibruje kniply" a musí se znovu zkalibrovat a ztratí se i nastavení aktuálně editované stránky, takže trochu zákeřné. No, lítat s tímhle FW asi nebudu, ale na tank dobré... Autor, zdá se, už FW dál nevyvíjí a já se vysokou pravděpodobností nebudu nudit tak, že bych se do nějakých úprav pustil. Za dnešek: Parááda! Ještě zkusím ještě trenéra a napípat nějaký složitější mix, kolik se tam toho vleze a jestli model vydrží napípaný.
_________________ (šroubovák | kleště | měřák | pájka | drátky | poletuchy | 24ch volantovka)
|
|
Nahoru |
|
|
sky59
|
Napsal: úte 14.01.2020 20:52 |
|
Mazák
|
|
Registrován: 21.9.2015 Příspěvky: 991
|
Pripajam sa k pochvale To si flashoval s nejakym JTAG?
|
|
Nahoru |
|
|
prikrylm
|
Napsal: úte 14.01.2020 21:22 |
|
Mecenáš serveru
|
|
|
Registrován: 6.1.2012 Příspěvky: 3666 Bydliště: Řečkovice Obrázky: 0
|
Děkuji! Děkuji! Použil jsem interní sériovku. To, co je vyvedené na venkovní konektor (USART1_TX/RX), akorát zpátky na orig FW se musí rádio rozebrat a "zapnout" ten BOOT0. Na interní sériovku jsem pak napojil jakousi čínskou kopii FTDI, program tam láduju něčím od ST, co se jmenuje "Flash Loader Demonstrator". ... S tím mazáním nastavení při vyskočení okna je to ještě jen někde a jen někdy... Teď jsem tam napípal nějaké mixy (samokřídlo), křivku, časovač a uvidím, co to udělá. - v mixech nefunguje jako vstup spínač (ale dá se obejít), nefungují CYC1-3 - pochopitelně, nefunguje zpomalení a zpoždění.
_________________ (šroubovák | kleště | měřák | pájka | drátky | poletuchy | 24ch volantovka)
|
|
Nahoru |
|
|
sky59
|
Napsal: stř 15.01.2020 7:13 |
|
Mazák
|
|
Registrován: 21.9.2015 Příspěvky: 991
|
v zmysle ze "aktivny blbec" je horsi ako triedny nepriatel, mozno by stalo za uvazenie zrusit to automaticke kalibrovanie, netusim (nepozeral som zatial) ze na zaklade coho sa to vyvola automaticky, ake je kriterium, ale asi nebude dobre
pokial sa da kalibracia vyvolat manualne v menu, stalo by za uvazenie zrusit to automaticke vyvolavanie kalibracie a bolo by po probleme ?
toho kodu nie je az tak vela ze by sa to nedalo najst...
EDIT: tak je to v subore settings.c : ---------------------------------------------------------------------------------------------------- static void settings_process(uint32_t data) { uint16_t chksum;
char state = eeprom_state(); display_busy(state == 'B');
/* do not update eeprom when cal is in progress * it's changing the data on the fly (IRQ) and will cause spurious error messages */ if (gui_get_layout() != GUI_LAYOUT_STICK_CALIBRATION) { // see if general settings need to be saved chksum = eeprom_calc_chksum((void*) &g_eeGeneral, sizeof(EEGeneral) - 2); if (chksum != g_eeGeneral.chkSum) { g_eeGeneral.chkSum = chksum; display_busy(1); eeprom_write(0, sizeof(EEGeneral), (void*) &g_eeGeneral); // check after write unsigned cs = eeprom_checksum_memory(0, sizeof(EEGeneral) - 2); if (chksum != cs) { uint16_t chksum2 = eeprom_calc_chksum((void*) &g_eeGeneral, sizeof(EEGeneral) - 2); dputs("eeprom general CS mismatch after write "); dputs_hex4(chksum); dputs_hex4(cs); dputs_hex4(chksum2); dputs("\r\n"); // err message only when struct was not modified in between if( chksum ==chksum2 ) gui_popup(GUI_MSG_EEPROM_INVALID, 0); } } }
save_current_model_if_modified(); load_current_model_if_changed();
#if 0 dputs_hex4(eeprom_calc_chksum((void*) &g_model, sizeof(g_model) - sizeof(g_model.chkSum))); #endif
task_schedule(TASK_PROCESS_EEPROM, 0, 1000); } ------------------------------------------------------------------------------------------------
neviem naco a preco neustale zapisuje do eeprom, myslim ze len koli aktualnemu stavu baterie ta hlaska co vidis je vyvolana s gui_popup(GUI_MSG_EEPROM_INVALID, 0); a je to: (?) "Calibration data invalid, please calibrate the sticks."
neviem ako je to v original programe ale autor ma nejake problemy s pristupom do eeprom, vid: pri inicializacii opakovane cita eeprom az sa mu to nakoniec podari -----------------------------------------------------------------------------
void settings_init(void) {
// Read the configuration data out of EEPROM. Perform few attempts as it fails occasionally int cnt = 2; while( !eeprom_read(0, sizeof(EEGeneral), (void*) &g_eeGeneral) && --cnt ) ; uint16_t chksum = eeprom_calc_chksum((void*) &g_eeGeneral, sizeof(EEGeneral) - 2); if (chksum != g_eeGeneral.chkSum) { dputs("eeprom general CS bad "); dputs_dec(2); dputs_hex4(chksum); dputs_hex4(g_eeGeneral.chkSum); dputs("\r\n"); puts_mem(&g_eeGeneral, sizeof(g_eeGeneral)); gui_popup(GUI_MSG_EEPROM_INVALID, 0); // re-Read the configuration data out of EEPROM; // perhaps it just fails on first access? eeprom_read(0, sizeof(EEGeneral), (void*) &g_eeGeneral); }
// now register eeprom update task task_register(TASK_PROCESS_EEPROM, settings_process); settings_process(0); } -----------------------------------------------------------------------------------------------
ak tam ma nejaky bug ohladom eeprom najjednoduchsie je opravit pristup do eeprom a vsetko by malo hrat ako vino
|
|
Nahoru |
|
|
prikrylm
|
Napsal: stř 15.01.2020 9:06 |
|
Mecenáš serveru
|
|
|
Registrován: 6.1.2012 Příspěvky: 3666 Bydliště: Řečkovice Obrázky: 0
|
Díky za průzkum. Otázka je jestli to, co mám v rádiu fakt není nějaká historická verze CPU, která se chová trochu jinak jak 128k verze. Možná stačí, že je trochu pomalejší - i když to je vzhledem ke krystalu asi blbost.
Ale zmiňuje se, že veškeré vstupy jsou přes přerušení, tak možná se občas podaří, že čtení EEPROM přeruší právě něco takového. A je to možné, pokud jsem měnil údaj ve větším rozsahu rollerem (např ze 100 na -100), což je mimochodem pěkná otrava, tak tahle hláška byla celkem častá.
Praktické zkušenosti s programováním jednočipů takového rozsahu nemám. Zkusím si rozchodit nějaké prostředí. Sice tiše doufám, že pokus o opravu udělá někdo jiný, ale kdyby ne, aspoň se pokusím. Zmr(t)vit se rádio nedá a člověk by měl pořád zkoušet něco nového, žejo.
_________________ (šroubovák | kleště | měřák | pájka | drátky | poletuchy | 24ch volantovka)
|
|
Nahoru |
|
|
sky59
|
Napsal: stř 15.01.2020 12:49 |
|
Mazák
|
|
Registrován: 21.9.2015 Příspěvky: 991
|
Zapis do eeprom je volany 1x za sekundu Autor pouziva nejaky hotovy kod od dakeho anglicana Teraz je clk do eeprom 200kHz Ak by si chcel, mozem to znizit na 50kHz ze co by to urobilo, ani nie koli frekvencii ale koli tomu ze by sa pomenili casove relacie ohladom eeprom, ak by sa to zhorsilo je mozne pouzit max frekvenciu 400kHz
EDIT:
s odstupom casu ma napadlo, ze problem moze byt v tom, ze zapisuju cele stranky do eeprom, zapis 1 bytu trva az do 100ms, zavisi od pamate cize je celkom mozne, ze to do 1 sekundy nestihne
urobil som 2 zmeny: - zvysil som CLK pre eeprom na maximum 400kHz (urychli sa komunikacia, ostane viac casu na vykonanie zapisu) - predlzil som interval z 1 sekundy na 2 sekundy kedy sa periodicky zapisuje do eeprom, cize po "kalibracii" treba vyckat 2 sekundy
co som pozeral, ziadna kalibracia sa vlastne asi ani nerobi, pretoze iba blbo zapise pevne udaje do eeprom, alebo som zle precital program?
ak chces vyskusat tak upraveny bin je v prilohe
|
|
Nahoru |
|
|
Kdo je online |
Uživatelé procházející toto fórum: pberki a 15 návštevníků |
|
Nemůžete zakládat nová témata v tomto fóru Nemůžete odpovídat v tomto fóru Nemůžete upravovat své příspěvky v tomto fóru Nemůžete mazat své příspěvky v tomto fóru Nemůžete přikládat soubory v tomto fóru
|
|
|