程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7130|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& M! M" C/ A/ J6 E
#include <linux/init.h>) U) i5 ]2 t/ O( q
#include <linux/module.h>
# q4 T2 Z- |! {5 d#include <linux/kernel.h>5 L' x, Y, g; H9 o0 n
#include <linux/types.h>) y* j/ v$ e/ z6 m2 U, F( J
#include <linux/gpio.h>8 B" e  J& s- u" s# Y$ T
#include <linux/leds.h>* u) n1 p( h9 _- C; q
#include <linux/platform_device.h>5 Q5 g# e- X# s% A

2 G+ y7 `  O  w2 P) @#include <asm/mach-types.h>! v! v7 H* W0 M
#include <asm/mach/arch.h>
! T# W$ G% f# l7 N8 \3 ^, X2 s#include <mach/da8xx.h>5 l: }# k+ w" s, ~6 \1 z/ i" P
#include <mach/mux.h>
' h- U. ~! {( J+ U9 p
, T$ Y# @  u, g6 t5 n! v1 j#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 ^0 f7 y7 N7 W8 g: ^1 }  v#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  Z% n6 P8 n. |( Y, |. I' E
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ @% \7 o. `! u) P7 Q4 Y- R/ d4 Z. w
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 u* c7 j( w" D9 N9 S3 O4 a# V# \+ M: K: |
/* assign the tl som board LED-GPIOs*/- d" x9 u$ T, e3 Z' h
static const short da850_evm_tl_user_led_pins[] = {
+ x$ z6 G' s9 n$ S7 F" t        /* These pins are definition at <mach/mux.h> file */
$ N$ \2 e4 m7 D  e. b) ^) V( o        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ g) `* r6 O& }3 _* n        -1
" B, K3 P! f+ h. x+ q};  K4 Z7 ~  k/ o8 R

' U/ ~7 B9 `' o  K  |6 b2 kstatic struct gpio_led da850_evm_tl_leds[] = {
5 T+ X9 C& T9 _        {2 p: `" X7 e/ k' {
                .active_low = 0,
9 ^8 E! V% p" ]3 @  i' R: S                .gpio = DA850_USER_LED0,
+ r) L# E% J& o) g                .name = "user_led0",9 l' d! f+ G( i2 @* v7 j
                .default_trigger = "default-on",
) H  t7 f2 a4 K8 d' b" F0 ^/ i        },
3 c: s2 S: R) m' g        {) |- V1 H# w* L  `
                .active_low = 0,9 i1 |6 \% d0 m7 V# m
                .gpio = DA850_USER_LED1,
8 Z+ z( M/ g  V1 _2 `                .name = "user_led1",
' `' D  z/ x8 L3 Z                .default_trigger = "default-on",0 r( D$ F* ~9 |  f$ V' t  M
        },0 V% a/ x7 A+ x9 T, ^7 l" b" j
        {/ L" e( ]( a! A# k' O1 c
                .active_low = 0,. Y( v$ S% I4 N, ^1 {
                .gpio = DA850_USER_LED2,
& r4 _2 g4 n8 c6 M3 V( P* L                .name = "user_led2",
. @+ ]% j% v. A                .default_trigger = "default-on",$ Z/ B1 v; l( l  f! ~  [" m& L
        },
& h* f5 T# {% ~2 Y/ P; C        {3 z4 C+ ~( ?! x
                .active_low = 0,
6 {9 f* }2 \& [                .gpio = DA850_USER_LED3,5 |( c* X; e8 A7 t% g9 J
                .name = "user_led3",
  C+ z1 Q8 \/ {6 u# M  M                .default_trigger = "default-on",4 p# R! v2 v+ ^# ]; ]' e
        },
! E" l8 e& w0 R};( ?; C& r8 {( }8 b: c
6 t2 t2 L& p% d0 ?  k. [
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- Z8 ?/ s) g0 q7 R( |8 L1 t        .leds = da850_evm_tl_leds,' Z- Q5 S. F( e1 P3 P  P5 h8 B: ^
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' G( X$ n( S5 Q; y5 Q2 I* S6 Y# U
};* x  ~0 `! b% d% d3 n

/ u( N) \6 x( D6 |$ `: Bstatic void led_dev_release(struct device *dev)
# J6 T0 [% ?, F2 M$ h6 z{
1 u7 k' r) q% ]' P};0 h  ~' A. U* i; C3 T- {6 s3 I
  [) ]! K" V0 }& ^: H
static struct platform_device da850_evm_tl_leds_device = {+ N1 s( h& p) ]6 A8 M
        .name                = "leds-gpio",( R/ _5 n0 ~, U7 O# e  p
        .id                = 1,
, q" l- |8 @$ J2 H5 E        .dev = {0 p- G/ c) ~+ g' j+ ^
                .platform_data = &da850_evm_tl_leds_pdata,
0 q# [9 ?* g+ \' c" @' t) c                .release = led_dev_release,
. F& i2 L7 Q  u1 [# o        }: m# [% {9 K% B
};
9 G- p+ F% z0 {  s+ V4 A
( B- j1 T: m4 |5 }) \3 tstatic int __init led_platform_init(void)4 w! l* n2 h' A9 K" M, E
{
, e6 H3 a5 C% y+ T# e6 E        int ret;0 a4 Z- ^& n0 l* i* n
#if 0
3 O$ Y7 V8 Y6 a3 r( C# l        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: ~5 }9 E7 Z& F0 F
        if (ret)+ R% T0 N8 S. Q9 K, q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: E* h1 h' P4 x2 Y( u" e# r0 @. u2 v                                "%d\n", ret);
: V" _. G0 j7 F' I0 z( i#endif
- v# c* d* `- V- v3 H        ret = platform_device_register(&da850_evm_tl_leds_device);
5 S1 C6 V& v5 Y0 `0 G0 x# ~- V        if (ret)
: [* B; G" R$ P0 T                pr_warning("Could not register som GPIO expander LEDS");. d3 s: ]3 v2 ~% B& F7 U# }" p4 ~
        else
- e" a# B$ j. j# {$ d" k( z& t                printk(KERN_INFO "LED register sucessful!\n");
: N4 ~. `# |3 g# I1 k) ~6 E: W0 t- b) Y% w9 C! a2 O+ e) X
        return ret;
0 H/ r' j/ @: c9 W}
7 ]' d- I5 X: X+ R/ x8 S7 F3 T3 y
static void __exit led_platform_exit(void)
  a4 G* D- D% B- Z{
2 r5 R0 c$ m0 `+ Z        platform_device_unregister(&da850_evm_tl_leds_device);: x% m$ `6 l0 z

3 J' \& T8 W- g4 N; L2 L        printk(KERN_INFO "LED unregister!\n");
$ L* j0 P/ g3 k9 v( s' v* a}
$ ?3 w: U' Z5 Y- k) d; e5 X* n6 U3 D
module_init(led_platform_init);5 `+ n# {0 f# C) q4 [; T# }( C
module_exit(led_platform_exit);
9 g$ c- r: }; }$ {, \
# \& y5 O- a7 ~( m2 i2 u/ r5 UMODULE_DESCRIPTION("Led platform driver");
7 ?3 C0 D. v& _: A* L7 S( _MODULE_AUTHOR("Tronlong");! L% N/ a, s0 a  Y
MODULE_LICENSE("GPL");
1 F( T7 ~& p8 l6 b$ G  C$ |5 |7 ~" T$ |2 o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-12-11 04:52 , Processed in 0.037232 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表