ڣ2020-12-10
1 ʵд
2 дӦòԳ
3 в
ʵ·i.MX6ULս߹/06_Linux/04_gpioled_atomic
ȴµļgpioled_atomic.cLEDϽġʹԭӲʵһֻһӦ÷LEDơĺ£







33УLED豸ṹԭӱlockʵһֻһӦ÷LEDƣled_initںὫlockֵ豸Ϊ1
45~55УӦòԳled豸ʱжԭӱֵ鵱ǰLED豸ûбӦʹáÿδ豸ʱʹ atomic_dec_and_test lock 1 atomic_dec_and_testֵΪͱʾ lock ǰֵΪ 0˵豸ʹá atomic_dec_and_test ֵΪ٣ͱʾ lock ǰֵΪ(lock ֵĬ 1)lock ֵΪĿֻһǾ豸ʹ LED豸ʹ LED ƣôֻ˳ˣ˳֮ǰú atomic_inc lock 1Ϊʱ lock ֵ˸Ҫ 1 lock ֵΪ 0
113УӦòԳͨcloseر豸ļled_release ͨatomic_inc ͷ lcokҲǽ lock 1
136Уʼԭӱ lockʼֵΪ 1ÿξֻһӦʹ LEDơ
Ӧòļgpioled_atomic_test.cļ£


1
дMakefileļobj-mֵΪgpioled_atomic.o£

ն
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
Ȼʹámakeб룬gpioled_atomic.koģļ
2ӦòԳ
gpioled_atomic_test.cӦòԳ
arm-linux-gnueabihf-gcc -o gpioled_atomic_test gpioled_atomic_test.c
ɹͻgpioled_atomic_testӦÿִг
3в
壬õgpioled_atomic.koģļgpioled_atomic_testӦòԳ/lib/modules/4.1.15Ŀ¼£鿪ļϵͳûС/lib/modules/4.1.15Ŀ¼ûеĻҪдһ¡ʹõǹṩbusyboxļϵͳϵġi.MX6ULս߹\08_ϵͳ\03_ļϵͳ\01_BusyboxļϵͳĿ¼£ģ飺
depmod
modprobe gpioled_atomic
ģسɹͼ 3.1Ϣӡ

Ȼʹgpioled_atomic_testӦòԳļ
LEDƣ
./gpioled_atomic_test /dev/gpioled 1 &
鿴ϵĺɫLEDǷ&ʾںͷն˲ᱻռá
нͼ 3.2ʾ

Կgpioled_atomic_testӦòԳУӡApp running times:1͡App running times:2ʾģ25s豸ռá25sռڼرLEDƵ
./gpioled_atomic_test /dev/gpioled 0
ͼ 3.3Ϣ

Ϣfile /dev/gpioled open failed!/dev/gpioled豸ļʧܣ˵֮ǰLEDʹgpioled_atomic_testռ/dev/gpioled豸ļٴִgpioled_atomic_testȥ/dev/gpioled豸ļʧܡҪ25s֮ȥʹ/dev/gpioled豸ļDzԭӱʵһֻһӦó LED ơ
жģļ
rmmod gpioled_atomic