Creo que los amigos que han depurado el controlador han estado más o menos expuestos al reloj. Porque el reloj es indispensable para el dispositivo, al igual que el corazón suministra sangre al cuerpo humano. Algunos dispositivos tienen sus propios relojes, otros reciben relojes externos del sistema y la fuente del reloj es la piedra angular de la operación del dispositivo.
Por lo tanto, detectar si el reloj está funcionando es una de las claves para depurar el dispositivo. En este artículo, le daré un método efectivo de depuración del reloj: no es necesario usar el comprobador, pero use el método del software.
Hablaré sobre el problema del reloj que encontré y luego veré cómo depurar el reloj.
El problema ocurrió al desarrollar el controlador mcc (controlador multicanal) — — cuando probamos el controlador, encontramos que no importa cómo se configuraron los parámetros de mcc y los dispositivos de activación, el dispositivo estaba en silencio, como si estuviera muerto. Por lo tanto se recibe el reloj estimado. Después de la investigación, la fuente de reloj mt9045 utilizada por mcc no está configurada. Esta fuente de reloj ingresará los relojes de transmisión y recepción de entrada de mcc, así como el reloj síncrono.
Como no teníamos suficientes datos para configurar el reloj en ese momento, y el reloj era realmente complicado, estuvimos ocupados por un tiempo y no lo logramos. Por lo tanto, necesitamos urgentemente verificar la corrección de la entrada del reloj. Si usa un probador de onda, no sabe cómo recoger los pines del hardware (el dispositivo está bien empaquetado). Finalmente, usamos un programa de software para detectar la frecuencia del reloj del puerto.
static
int frequency_count (addr largo sin signo volátil, máscara int sin signo)
{
int t, nt, et;
int v, lv, cnt;
t = Gettick ();
while (1)
{< Br>
nt = Gettick ();
if (nt! = T)
break;
}
et = nt + GetsysClkRate ();
cnt = 0;
lv = v = (* (int *) addr) &mask;
while (1)
{
nt = Gettick ();
if (nt > = et)
break;
v = (* (int *) Addr) &mask;
if (v! = Lv)
{
lv = v;
cnt ++;
}
}
return cnt /2;
}
Los valores calculados del programa anterior son aproximados, cuando el sistema Cuando la frecuencia de la CPU es rápida, la precisión se trata: el mecanismo queda para que todos lo entiendan.
El uso de la función es muy simple. Al detectar una determinada salida de reloj, es decir, si un pin en una línea de dirección particular (un ángulo de software es un bit) genera una frecuencia, solo se requieren la dirección de la dirección y la máscara de pin de salida de frequency_count, como la dirección 0xfdf90d50. El bit 0 se pasa a 0xfdf90d50, 0x00000001. La función da salida al valor de frecuencia de tiempo.
Tenga en cuenta que hay dos funciones auxiliares. Uno es Gettick, que se utiliza para obtener el valor de tictac actual del sistema, y el otro es GetsysClkRate para obtener la frecuencia de tics del sistema.
Las funciones anteriores se pueden implementar de la siguiente manera en un sistema Linux.
static int Gettick ()
{
return (int) jiffies;
}
< Br>
static int GetsysClkRate ()
{
return (int) HZ;
}
Las funciones anteriores para el sistema vxWorks se pueden implementar de la siguiente manera
static int Gettick ()
{
return tickGet ();
}
static int GetsysClkRate ()
{
return sysClkRateGet ();
}
Descripción del requisito iptables SNAT utilizando la política de ajuste 192.168.100.0/24 el seg
OpvnVPN Nombre completo en chino: red privada virtual. Es una tecnología de red privada privada qu
Linux ha creado un entorno amigable que nos da la posibilidad de elegir. Por ejemplo, la mayoría d
Entre los muchos miembros de la familia de MCU, los MCU de la serie MCS-51 ocupan la medida y el con
Comando de montaje: Medios de almacenamiento externo de Linux Método de montaje
Usando el proxy de calcetines bajo la línea de comando de Linux
Archivo de configuración de Linux
Cómo ver la distribución de Linux
Sistema operativo Linux instalación del controlador de la tarjeta de sonido y configuración
Linux cómo modificar el nombre de la computadora
Consejos para el uso flexible de los scripts de expectativa bajo Linux
Varios pensamientos y conclusiones sobre los procesos de padre e hijo bajo Linux
Copia de seguridad del sistema Linux con Ghost
La virtualización es la peor: los diez usos más comunes de Linux
Modificar la configuración de IP, DNS y enrutamiento bajo el sistema operativo Linux
Sistema operativo Linux monta problemas de disco U y disco duro
Amante anti-guerra contra el show, amor y amor paquete sitio web del evento
Navegador Sogou del sistema Win8 cómo configurar el descargador predeterminado
Falta la barra de tareas de Win10, ¿cómo volver?
El sistema Win7 en la unidad C para copiar el mensaje "Error 0 × 80070522" ¿cómo resolverlo?
¿Qué es win10 onedrive, cómo cerrar y deshabilitar?
El sistema Win10 usa la Política de grupo para prohibir a los usuarios instalar pasos de software
Win8 usa mosaicos dinámicos para facilitar la navegación
Windows 8 RP versión de la solución de bloqueo
Cómo verificar el tipo de shell utilizado por el sistema operativo Linux