Bitove polia v C
Petr Labaj
labaj na volny.cz
Středa Duben 4 20:34:48 CEST 2012
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
Další informace o konferenci Hw-list