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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 ~- k/ v6 u2 m! `- o#include <linux/init.h>
. m4 ~2 y- ]9 O, y6 E: a( Q#include <linux/module.h>
% m9 |3 {: I/ W/ @3 l#include <linux/kernel.h>
, T$ |! ]3 y( R% }, b* `#include <linux/types.h>
, @2 k$ n1 E/ Y0 c( z#include <linux/gpio.h>
. W' ]# H2 i% d7 N#include <linux/leds.h>( U0 c/ U6 n7 h# ?
#include <linux/platform_device.h>
  u0 [- B0 {0 O! w0 H% s. q2 y+ S# P% s; t, N3 ], `& V' f
#include <asm/mach-types.h>  {  L% t+ B/ e- P7 Y
#include <asm/mach/arch.h>* G8 u( b0 q" n5 S( a9 }
#include <mach/da8xx.h>
" _/ O: c) a( d: M$ s! `8 b#include <mach/mux.h>
8 B8 X* ?0 A1 N7 ~- {' y
0 o& G% C; p6 h- ^$ D4 I* S#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 |- b8 w3 r# ?+ h, Y' B5 ^#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 [1 M. V+ \0 u5 o% ]( f#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 ]& [# D$ u% S+ v
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! S8 Y5 H% F  a9 J6 |: H

+ b; @) ]% b) F7 B/* assign the tl som board LED-GPIOs*/
% \6 n, \& L6 m& ~' U' Cstatic const short da850_evm_tl_user_led_pins[] = {
. E4 w+ {* J) s* j9 V) N& J5 e        /* These pins are definition at <mach/mux.h> file */
+ G7 o# k$ c8 I7 H! [        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 x0 j8 d# \0 u
        -1( O6 t1 U) h0 V
};" H) F' u' f1 R4 C) _; Z3 S+ p

; E1 y6 F* r$ P6 e: Ostatic struct gpio_led da850_evm_tl_leds[] = {
4 l5 {/ Z! s, B# [. G        {
  x5 v4 \/ s) X$ s% N                .active_low = 0,
4 h( t$ y2 G+ f% Q1 K6 \                .gpio = DA850_USER_LED0,$ }* S0 @) C( R9 v! J
                .name = "user_led0",
, _- T$ L% ^/ ?- \5 q                .default_trigger = "default-on",
: S* [2 h! Y+ t" e) q6 P! M        },( h+ t; N& E. o4 |
        {
; ]% X9 A5 a* a! X- |8 N% Y                .active_low = 0,8 ~6 W: }( n3 e! z" N% B
                .gpio = DA850_USER_LED1,9 T4 P2 N& m$ w, [4 v& ^
                .name = "user_led1",
, w6 \4 A9 @: e0 n/ J  U( ]                .default_trigger = "default-on",3 Z+ a6 h$ }- `% F- |2 K
        },
6 G7 J& z  x) q+ N4 x        {
5 c. r' j- G+ a. M                .active_low = 0,
- m$ I( G& R  W. h7 a9 {                .gpio = DA850_USER_LED2,
, |1 a/ @* d& z% G, H( D                .name = "user_led2",
6 x% E1 s- F( u  C3 n+ i6 A                .default_trigger = "default-on",2 a5 u( b" P- _3 Q; f3 r" b$ \
        },
( X$ m. ~, `6 V7 G        {; L% C, X0 C. y1 [* X- ^
                .active_low = 0,
' R' Z+ h/ K7 |                .gpio = DA850_USER_LED3,) Z. d, y1 k6 E# p
                .name = "user_led3",
; z( p% |( U7 x# W- R( f                .default_trigger = "default-on",
; L6 j5 A6 B; w6 M5 e% P0 N' J        },! g) ^# c6 N- I6 Y9 X
};# Q: s# H9 J* \7 _& J0 r1 T5 S

- B) {# [' K* Z8 h+ E9 T2 g/ wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- o6 N4 b0 w" t; A2 q        .leds = da850_evm_tl_leds,
2 J" m9 e0 `) b! M0 s        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 V2 J% i- p, C
};
# \1 w7 {& U# l/ _1 Q
0 [: N  ?5 G4 Mstatic void led_dev_release(struct device *dev)
; ~. c7 U6 V/ O{
$ Q1 I5 N/ C: N% H$ I* i3 k};
' o+ x* p5 e2 T1 D% C% `/ H& y
  x5 f# |. \5 o5 fstatic struct platform_device da850_evm_tl_leds_device = {1 I2 K# D; q' ^$ c  ]% D3 I
        .name                = "leds-gpio",
& H* ]7 a" T6 t# U$ G: Z        .id                = 1,
/ G/ v; T( S8 `! z( Y' n7 L& |0 u2 h        .dev = {
# ^( v6 E9 ^3 r$ Y                .platform_data = &da850_evm_tl_leds_pdata,
- K- c9 {9 y$ g) f; B0 w                .release = led_dev_release,4 J9 @" V1 d& g3 M! s# {8 _( {
        }% @' N6 d9 {1 `: r
};
$ H6 Z$ Z& v" `1 \
7 L6 ~( I+ L' Xstatic int __init led_platform_init(void)9 ?1 f1 E1 x  X, L4 l8 o. ~$ v
{0 T# @' w  L/ d3 M8 Q' P
        int ret;' P/ X6 K9 _0 m. I& q3 a
#if 0: _! h9 b; ]6 w9 p: k: n
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 C- m% |) N% l/ b: l
        if (ret)/ U4 X9 @1 Q$ D& F; k9 _
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  J' v$ ^1 N9 q2 m1 T# l
                                "%d\n", ret);
5 H; N; ?4 @: F#endif8 M8 z. v( b. Q6 A
        ret = platform_device_register(&da850_evm_tl_leds_device);4 K' o/ S" O' ~. o# ~5 L
        if (ret)* o% [6 p+ W( b9 R0 `3 X
                pr_warning("Could not register som GPIO expander LEDS");
0 k- I* Z5 C+ W; S* E        else: {5 Z1 s/ }, R3 K& ^) V; D
                printk(KERN_INFO "LED register sucessful!\n");8 V$ t" f: b9 |) v

$ o0 k8 O1 y  z' Q  ]& ^3 {# F# U2 H        return ret;
. ^4 l7 s) I7 A0 `2 S: u}' @$ w' F2 [1 A, [  U
  Z8 D2 E) `& K- S0 l3 e
static void __exit led_platform_exit(void)5 C* g! l8 C2 V1 ]  @  l9 s8 z) u
{
5 m$ S7 W. [& E! Q8 G! z3 h        platform_device_unregister(&da850_evm_tl_leds_device);
% v3 A- Y! e  z7 i+ i5 h2 n2 U. f6 `
        printk(KERN_INFO "LED unregister!\n");0 {, ]7 I9 J% _% ~. e9 j1 f
}
, ?* J4 A7 ^! e' j
+ w2 j4 B5 u, ?) M8 Z! Tmodule_init(led_platform_init);3 s* d5 L9 n" w! S  h+ y) a
module_exit(led_platform_exit);2 t7 A5 W+ _% _. G4 F: ?
$ `+ w; F+ G- p& D7 S4 F
MODULE_DESCRIPTION("Led platform driver");# s, t; B8 {, Y* k
MODULE_AUTHOR("Tronlong");
9 \4 K( s- ?( fMODULE_LICENSE("GPL");$ r2 D! K' n' J5 r- f

! K; d  Z& g" C( B8 h1 E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-25 08:30 , Processed in 0.036846 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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