LPC11U68 + C rychlost portu
Jaroslav Buchta
jaroslav.buchta na hascomp.cz
Úterý Červenec 26 17:25:25 CEST 2016
Ja zvolil jednodussi cestu - rezignoval jsem na tyto detaily a
pristupuji k temto ARM procesorum podobne jako k PC, tedy, ze nelze
cekat nejake presne casovani instrukci, programuji tak, ze vse funguje
asynchronne, na sviznejsi periferie pouzivam vhodne HW prostredky a
pokud neni dostatecna rezerva ve vykonu, vezmu rychlejsi/vykonnejsi
procesor.
Dne 26.07.2016 v 16:23 Josef Štengl napsal(a):
>
> Pokud překladem jádra myslíte jádro křemíkové, tak musíte číst
> 1) datasheet od ARMu pro danou architekturu.
> 2) CP15 registry
>
> Většina registrů je readonly a ukazují jak je nakofigurován křemík.
> Pak jsou tam takové věci jako například počet cpu cyklů, konfigurace
> přístupů do pamětí a takové ty věci, které nepotřebujete pokud někde
> někdo něco nezkazil. Tímto děkuji fimě TI, která mě donutila si tuto
> část přečíst. Přišel jsem na spoustu hezkých hraček :-)
>
> Pro M procesory (M3) se dali číst přímo čtením paměti, pro ostatní se
> musí pomocí přístupu k cp15 koprocesoru. Jde to na přímo přes GDB,
> respektive GDB má podporu pro čtení cp15. Ale je to jako programovat
> nějaký kratší WLIV procesor v assembleru :-)
>
> Je tam napsaná snad i velikost těch bufferů, cache a také kde to
> zhavarovalo (PC a adresa poslední I/O), než se to dostalo do hard fail
> a podobně. Je tam docela rozsáhlý popis hardwarové konfigurace.
>
> Taky mě ty wait staty nevychází, představoval bych si to jako 2x
> stejně, pauza, a tak dál. Zřejmě narážím na nedostatek vědomostí :-(
>
>
> Dne 26.7.2016 v 14:57 Jan Waclawek napsal(a):
>
>> Tak to bude asi prefetch. V jadre to ma len Cortex-M3/M4 (M7 ma skutocne
>> cache ale to je o pol ligy vyssie) a su to max. 3 wordy (ak tomu dobre
>> rozumiem, je to konfigurovatelny parameter pri preklade jadra, a zatial
>> som pre Cortex-M ani u jedneho vyrobcu nenasiel slusny datasheet
>> ktory by
>> menoval ako boli konfigurovane tie konfigurovatelne veci). Cortex-M0/M0+
>> prefetch nema. Na druhej strane vsak vsetky robia 32-bitovy fetch,
>> pricom
>> vsetky su pevne Thumb2, a ak sa nemylim, M0 ma vsetky instrukcie
>> 16-bitove
>> a M0+ mozno tiez, t.j. ak FLASH je 32-bitova, tak jeden fetch je
>> dobry na
>> dve instrukcie. Pri 2 waitstatoch by to znamenalo 3 cykly na 2
>> instrukcie,
>> ak su instrukcie vykonavane po 1 cykle (co su, ak kazdy cyklus sa zmeni
>> GPIO port), tak by sa po kazdych 2 cykloch muselo 1 cyklus cakat. To
>> neznie ako "nepravidelne rozmiestnenie".
>
>
>
>> wek
>>
>>
>> _______________________________________________
>> HW-list mailing list - sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list