Bitove polia v C

Jan Waclawek konfera na efton.sk
Středa Duben 4 18:52:07 CEST 2012


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




----- Original Message ---------------
>Ale stejne se mi zda zvlastni, ze by HW delal modifikaci bitu nejakou
>sekvenci read-modify-write. Vzdyt i na pocet hradel (a na to ARM
>myslim dost hraje) musi byt jednodussi proste jen naadresovat ten jeden
>klopny obvod a zatahnout mu za Set nebo Reset.



Další informace o konferenci Hw-list