Code reuse is divided into static and dynamic. Static reuse is when you use certain features, include the corresponding header file. Dynamic reuse is a Linux driver that can use resources from another Linux driver. When compiling multiple source code files in the C or C + + language, if A.C uses the functions in the B.C file, you need to use extern to pre-define the B.C in the a.c file, and extern is to tell the compiler the function name, the number of arguments, the parameter type, and the return value type. extern only works in the compile phase.
The Linux driver cannot be uninstalled using the Rmmod command when the Linux driver exception fails to unload properly. There are several situations: 1. Initialization function is dashed. 2. The Unload function is blocked. When this happens, the machine can be restarted, but it is cumbersome to reboot each time, so you can remove the Linux driver by modifying the corresponding memory address of the Linux driver.
The buzzer is a hardware device on the S3C6410 Development Board that controls the buzzer screaming by writing a specific value to the register. The basic principle uses pulses to control the opening and stopping of the buzzer. PWM is controlled using the Gpfcon register of Port F. The macro corresponding to the register in the Linux kernel is S3c64xx-gpfcon, which represents the virtual address of the Gpfcon register. The Gpfcon only uses up to two bits (30 and 31 bits) to control the PWM. When the maximum bit is 10 o'clock, the PWM is turned on. Stop the PWM for 00 o'clock.
The eighth chapter makes the Development Board sound: buzzer Drive reading notes