Sto scrivendo software per un sistema incorporato.Tipo di puntatore di sola scrittura
Utilizziamo i puntatori per accedere ai registri di un dispositivo FPGA.
Alcuni registri sono di sola lettura, mentre altri sono di sola scrittura.
I registri di sola scrittura generano valori non definiti durante la lettura.
Voglio definire un tipo di puntatore che consenta al compilatore di rilevare durante la lettura di valori da registri di sola scrittura (a.k.a. dereferencing).
È possibile creare un puntatore di sola scrittura utilizzando solo la sintassi del linguaggio C?
(Stiamo sviluppando il primo prototipo utilizzando C, ma passando a C++ su 2a generazione.)
Come può essere creato un puntatore di sola scrittura efficiente in C++? (Ricordare, non si tratta di elementi di tracciamento nella memoria dinamica, ma di accedere agli indirizzi hardware.)
Questo codice viene utilizzato su un sistema embedded in cui la sicurezza e la qualità sono i problemi più importanti.
Hai anche registri di lettura-scrittura, giusto? –
Dubito seriamente che lo si possa fare in C. In C++, d'altra parte, si dovrebbe essere in grado di farlo in modo relativamente semplice. – dasblinkenlight
@dasblinkenlight In C e in C++ l'unica soluzione è la disciplina. Scrivere '* p = ...' o '... = * p' è sempre più breve e più allettante della scrittura e utilizza alcune macro, funzioni o classi speciali (possibilmente classi di modelli). –