程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( b- Y/ z* ?, N#include <linux/init.h>, }& {# _8 d  H
#include <linux/module.h>5 C8 p# I) `: R) o$ E4 h) J
#include <linux/kernel.h>( a/ ]$ u0 d5 o6 d# U! j; h3 p
#include <linux/types.h>
' D4 A/ n4 t% I$ V# q6 }: P#include <linux/gpio.h>
) h, {7 }: k! z- K#include <linux/leds.h>; f" v3 @# w) N% w8 C3 p
#include <linux/platform_device.h>, p9 Y* j) Q% X& f
0 t! K% `; O- s6 X. ]( `0 D
#include <asm/mach-types.h>
# O  `; m$ G+ Q6 Y! z#include <asm/mach/arch.h>
6 A3 x  X5 Y- @% x+ `- D; ^! w#include <mach/da8xx.h>
, c8 y$ [$ i* k#include <mach/mux.h>
! B2 I4 P" Z6 \/ U: ]9 Z) D8 t9 ~- a" P* B: e! v
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# E3 A+ B0 \/ R  a& M- Z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" t6 l" f9 N6 a' e+ k#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 [4 k* r# }* [# w: ^5 a! Z- M
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). M+ O) f. g. q* ?

: W) m  b7 U& h5 p% @7 U/* assign the tl som board LED-GPIOs*/0 Z' n+ q- Z, j3 c6 ?& |: B! V
static const short da850_evm_tl_user_led_pins[] = {1 @& ^7 `0 d( F1 v
        /* These pins are definition at <mach/mux.h> file */
$ _9 q, J& V' u# u  j) O        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,  |2 {, J" c" \& @2 ~
        -1$ J1 C' \( i) c) h+ Q( P! u
};
6 Y0 A) O: {2 q- p- i7 h, `6 r/ [# ?% r$ X
static struct gpio_led da850_evm_tl_leds[] = {
# q+ Q; c, t7 U6 W5 v8 k  J) P* O        {# z! V# g% E0 k" f# M
                .active_low = 0,
1 A. v$ K5 ]0 y0 N                .gpio = DA850_USER_LED0,. R; |$ ]* c5 }1 r# ]9 Z& [0 P! Y
                .name = "user_led0",
; M3 `9 L( V8 A' O6 l8 u* z                .default_trigger = "default-on",
+ `- @' c7 G) I4 D( @        },
; X, H7 M  U% n4 o: i        {' m8 B+ _$ w9 |8 Q. x9 g
                .active_low = 0,8 a5 _& I) ?, @) _2 u* c3 p4 k. [+ m: u
                .gpio = DA850_USER_LED1,9 k) f: d6 V3 f$ a5 a& @- V
                .name = "user_led1",
1 C: l- B$ e, D. n6 ]' ^( a( d3 f                .default_trigger = "default-on",
& O7 j) s0 Z  x        },
7 j4 |% y9 J; n        {
$ k: C, g2 r$ o/ p* q1 ~  Z! {                .active_low = 0,
+ c2 G7 q# L% j' o! Y                .gpio = DA850_USER_LED2,
" l+ s) x5 G; f2 L& p                .name = "user_led2",
) b" |+ M% ]4 r7 a) o# ~                .default_trigger = "default-on",: a! q7 ]  S6 [" l# D1 M) z
        },
. h+ i6 ?! a( C% [        {+ o( U" F, Z- Z+ x2 f& e) k& N
                .active_low = 0,2 }) ?8 m5 @, _& K+ F2 k
                .gpio = DA850_USER_LED3,5 Y1 n, z& A$ c8 A
                .name = "user_led3",; T' D9 g8 m3 L1 ]  o5 r( I9 A/ \5 F
                .default_trigger = "default-on",
- l& g* t' n2 ^( r+ p4 s" Z+ f8 H        },% i; n: \; l( o7 ^5 f1 V9 w
};
+ J+ `* a, e2 ~+ p6 e' J3 {3 S0 B  f) A
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ o% Z' Q1 ^6 Q# \  }, m- a& ~* i
        .leds = da850_evm_tl_leds,
6 L* r; d6 @2 z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 V0 y7 y; P; w2 h};
5 r; Q/ {" _( L0 N
" A) T( {, u0 o, fstatic void led_dev_release(struct device *dev)& n5 C6 X) o8 B2 R: e7 q
{2 K8 L. q% H2 E5 j
};6 l2 C4 r" N' R& I  g6 l( s0 L+ I
& c6 J9 d" Z/ C0 M
static struct platform_device da850_evm_tl_leds_device = {. y$ [- q/ ^- y$ U. M  Z" P" X
        .name                = "leds-gpio",8 s4 X  T/ H* n5 {2 P
        .id                = 1,5 r$ y" z2 I  ?8 r/ f* C/ N
        .dev = {
8 D' s, g4 c/ G( x7 L                .platform_data = &da850_evm_tl_leds_pdata,
* s" y! T4 t7 A; f9 e' g  ~; E                .release = led_dev_release,
) B+ x5 R, h  d3 k6 b        }8 H7 J* f2 Q* U* L
};
$ T. [2 V. ?: E& @5 H/ d0 V2 |
2 c: ^' O. ?- r1 y: ~! z( v  ~static int __init led_platform_init(void)
" G" H+ }  E+ D( y( H{
4 ~# Y9 M4 n" V  P! o        int ret;
5 r8 b6 ?% r9 x: Q+ V3 f! U2 s#if 0; r/ _/ M* i' r& J1 [
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 t: O/ y$ b" \( g: D' O6 G! V        if (ret)" Y/ O+ U% Y3 }* D" ]
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": |8 U0 J1 K5 _' n; M  L6 b
                                "%d\n", ret);
1 F4 ]1 x* Y3 P# V. }#endif* d  m1 W! ]5 T3 ]: V
        ret = platform_device_register(&da850_evm_tl_leds_device);+ S. w% k3 t5 A+ {0 u
        if (ret)6 j+ ~- c' i9 @: a% c9 ^& a
                pr_warning("Could not register som GPIO expander LEDS");) b1 V9 o6 k& g. }6 L8 s
        else
, T) N/ g7 w& Z" w* o1 i                printk(KERN_INFO "LED register sucessful!\n");
( M' f' t$ Z2 O# M3 y6 c- F$ @3 N4 X8 ?, c& N- u
        return ret;
$ v9 V+ a1 |" F" G}
: L/ c# \* H; v7 ?* V* o6 }, W/ p# h9 H$ ~* E" c; \& X8 p
static void __exit led_platform_exit(void)
6 t6 w& E- U8 z! L2 O# D9 V{: C3 N* s' k4 O. q; J- n& v
        platform_device_unregister(&da850_evm_tl_leds_device);
% j# S8 F# W  M) i+ x) \
9 l/ {. V: V5 o! Q  M. l, X% ^        printk(KERN_INFO "LED unregister!\n");/ _# Q9 _' ?. ^& v4 ^) W( A  H
}6 O7 V# n) [3 V$ l9 D$ b5 l' p
6 v+ l6 ]( @+ `+ W
module_init(led_platform_init);6 X$ X( R# F  K
module_exit(led_platform_exit);
4 V9 f: D7 N% C
, x: |0 x3 P  ?, Q1 d/ L2 o  X: fMODULE_DESCRIPTION("Led platform driver");$ U" x, a/ x% ^; K
MODULE_AUTHOR("Tronlong");
7 f4 W; ]0 Z* v0 q, j% t) zMODULE_LICENSE("GPL");  j6 G" N( T2 X6 {* q, g) j/ s

# Q  I- b/ i$ M- }0 Y$ w- S# g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-6-23 10:08 , Processed in 0.047641 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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