Bitove polia v C

Stano stano.hw na gmail.com
Středa Duben 4 21:07:50 CEST 2012


Co sa tyka periferii celkom ma "potesil" tento bug:
Zapisem do DR (data registra SPI periferie) a nasledne citam SR (status 
register). A program sa spraval ako keby iadne vysielanie neprebiehalo, 
vobec nepockal. Stacilo vlozit maly delay a uz citanie SR vratilo 
korektne hodnoty.
Moj osobny dohad ze je to sposobene prave tym ze periferia je na inej 
"zbernici" a teda chvilku trva kym sa po zapise zmenia data a teda to co 
som cital boli este data z periferie este predtym nez zacala vysielat. 
Tiez by ma zaujimal nazor skusenejsich ako sa podobnym problemom 
dobuducna raz a navzdy vyvarovat.

Petr Labaj  wrote / napísal(a):
> Odpovidam trochu se zpozdenim, byl jsem chvili mimo civilizaci.
>
> Prave, ze ten bin-banding je vlastnosti jadra, nikoli tech prilepku
> od konkretnich vyrobcu. Proto bych tady takovou docela zasadni
> zradu necekal.
>
> U sbernice, jedouci na nizsi frekvenci (coz je dneska u novych
> rychlych modelu myslim skoro pravidlo) by k tomu mohlo dojit.
> Ale u GPIO, primo povesene na sbernici AHB mi to fakt hlava nebere.
> Predpokladam, ze "sbernice" zde neni jen to, co si pod timhle
> pojmem predstavujeme pri pripojeni externi pameti k CPU, ale
> ze to ma i dalsi ridici signaly, ktere umoznuji interpretovat data
> na te sbernici odlisne (prave treba jako ten set/reset bitu).
>
> Kdyby se to stalo mne, tak bych aspon 10x zkontroloval, jestli
> to nemohlo vzniknout nejakym vzorkovacim zkreslenim osciloskopu
> nebo log. analyzatoru.
>
> Ale verim Vam, urcite jste to poradne zkontroloval. Proto jsem psal,
> ze je dobre, ze jste se o podobnem problemu zminil.
>
> PL
>
> ****************************
>
> From: "Jan Waclawek" <konfera na efton.sk>
> To: "HW-news" <hw-list na list.hw.cz>
> Sent: Wednesday, April 04, 2012 6:52 PM
> Subject: Re: Bitove polia v C
>
>
> Ja sa musim opakovat: to je kvoli tomu, ze je to SoC.
>
> To jadro ma pevne dane rozhranie a tym je zbernica AHB; to je presne ako u "konvencnych" procesorov. Pre procesor cokolvek za tou zbernicou je cierna skrinka. Jedina cesta, ako sa tam da menit bit, je read-modify-write. Normalne sa to robi ciste softwarovo, ale ten medzikus naviac je pomerne jednoduchy a zrejme sa tym uspokoja niektori nespokojenci, najma ak boli zvyknuti na "skutocne" bitove operacie u dospelych mikrokontrolerov (ano, '51).
>
> To, ze sa da implementovat nulovanie/nastavenie bitu priamo na periferii, to je zase uplne ina vec; to ma ten LPC17xx tiez (a to sa uz sprava tak ako by clovek ocakaval, aj z hladiska casovania - aj ked asi ani na to nie je explicitne nikde uvedena zaruka, aspon som nic take neobjavil, naopak - vid v dalsom).
>
> Este pre tych co chcu skumat hlbsie a neboja sa toho bordelu ktory sa tam schovava (a nevadi im ze su tie "dokumenty" systematicky generovane v konzistencii silne rozriedenych s***iek), skuste si v tom manuali k LPC17xx prestudovat kapitolu o MPU a o jednotlivych typoch pamati (Normal, Device, Strongly ordered/Shareable atd.), a dajte si to do suvislosti s tym, kde su tie GPIO namapovene...
>
> Ja viem, toto vsetko je pre 99.9% uzivatelov irelevantne pretoze nikdy ten jednocip nepouziju v nejakej medznej situacii, a ja len zbytocne rypem... ;-)
>
> wek
>
> _______________________________________________
> 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