Algunas preguntas sobre el lenguaje C de la microcomputadora de un solo chip
La primera es la matriz definida por const. Vi que dijeron que la matriz definida por const ahorra memoria, simplemente defínala como código. ahorrar memoria.
Respuesta:
¿Las matrices definidas por const ahorran memoria? No existe tal argumento.
La matriz definida por const solo no puede cambiar en tiempo de ejecución.
Por ejemplo:
const char data aqq[3]={1, 2, 3}
Si ejecutas esta oración:
aqq[1]; se produce un error. Si agrega código al definir, se define en el área de código:
const code aqq[23]={1, 2, 3}
También hay una variable en; el lenguaje C que no es ¿Necesita memoria? ¿Cómo asigna la memoria el microcontrolador? Es colocar el programa escrito en el microcontrolador y luego usar el puntero del programa para señalar uno por uno.
Respuesta:
La memoria real asignada por el microcontrolador es muy complicada:
Diferentes datos definidos significan diferentes formas de asignar memoria. Por ejemplo, tipos de datos como Int/char/long int pueden parecer simples cuando se definen. De hecho, el compilador tiene que escribir mucho código para asignarles diferentes espacios de datos. Debido a que no existen estos tipos de datos en el lenguaje ensamblador, si convierte el lenguaje C en ensamblador, debe hacer que los datos C sean "comprensibles" para el ensamblador. Por ejemplo, INT ocupa dos bytes y char ocupa un byte. Estas "reglas" deben estar formuladas en el código de transferencia de datos.
En cuanto a si ponerlo en ROM o RAM, depende de la forma en que esté definido: si se añade CÓDIGO será en ROM, en caso contrario será en RAM.
Si encuentra variables, ¿asigna memoria o las separa durante la compilación en el software Keil? ¿Cuáles deben colocarse en la memoria y cuáles en la ROM?
Respuesta:
Al compilar en el software Keil, se divide en los que se deben colocar en la memoria y los que se deben colocar en la ROM.
Pero el almacenamiento de variables en La RAM es complicada. El programa decide cómo asignar espacio en función de diferentes estados y estos métodos de asignación pueden cambiar durante la operación. Por ejemplo, después de usar algunas variables una vez, el programa descubre que ya no se usan y su área de almacenamiento se borrará para ahorrar espacio. Esto se llama "cobertura".
Si el cartel aprende el lenguaje ensamblador al principio, será más fácil de entender. Si aprende el lenguaje C desde el principio, encontrará estos problemas.