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