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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。8 F$ z! o& Y6 ]9 M1 s9 o0 `! P
#include <linux/init.h>
$ S3 w9 A" n7 k$ A/ o+ O% R% C#include <linux/module.h>" A. M" l& @4 Z* J, y+ e1 c
#include <linux/kernel.h>
0 R3 ^/ G4 |- O. O4 F#include <linux/types.h>
2 T5 q4 s$ M$ F; ]7 x#include <linux/gpio.h>
5 ~- r7 T& V2 N6 }& x) J#include <linux/leds.h>% o( K8 k$ I- H  `$ S1 d5 w" a
#include <linux/platform_device.h>
0 o4 o) J6 o+ @5 I4 P- x& O$ H4 `  \" K
#include <asm/mach-types.h>
5 h5 ]; v; @' S" V- v+ n: C#include <asm/mach/arch.h>
- V2 p1 a; g7 [% |1 f) j1 k4 S#include <mach/da8xx.h>
+ B% W! o' ]& A7 M, \9 x) O#include <mach/mux.h>
* @6 P/ j" g* s: M$ J+ U
+ p0 {6 D. t, f9 U7 E+ g" A#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; x* a8 U* v6 H# g& }#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 I5 Z! `3 O# }5 ?3 Y' H+ G# }#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% ^% A  E0 P: L) E
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 A% S$ m/ l" h9 @% h

9 U! ?* _, c) D8 w/* assign the tl som board LED-GPIOs*/
+ l5 C1 e+ A* s8 Kstatic const short da850_evm_tl_user_led_pins[] = {' \, B% V( P1 o7 u
        /* These pins are definition at <mach/mux.h> file */
5 I5 Y7 }- `5 m: W# Q6 C        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; Y* N8 z9 K8 b0 x
        -1
+ |7 J+ p; _( P; f};& h; H5 X4 m. e% w) r5 W! \
& B) H' x/ j1 Q( E8 J& f0 q
static struct gpio_led da850_evm_tl_leds[] = {3 y. _# k% J$ T0 g7 t: ]
        {
# U3 h1 R: ^# h3 u+ C                .active_low = 0,; B, S  k% s" i5 p6 h* r8 n
                .gpio = DA850_USER_LED0,# a5 k4 |$ h, I% p
                .name = "user_led0",; f5 K( x7 w0 P: v. k
                .default_trigger = "default-on",7 F! ^0 x! P; ]- U
        },% X$ m5 I5 q- e! j! t: F
        {" r: o" b9 p# n. {
                .active_low = 0,
+ ^8 w* D) @9 F                .gpio = DA850_USER_LED1,. ^$ X  g; T# k; j0 B
                .name = "user_led1",. k$ i& |8 O# h4 a0 d1 a
                .default_trigger = "default-on",
5 }3 Z" D9 D4 |& t; Y$ F        },1 ^& E' T: i- Z: O: i
        {
2 u  D" n1 H8 j/ G3 j                .active_low = 0,4 W* t1 o1 l0 s4 S
                .gpio = DA850_USER_LED2,( n/ R- _3 G1 N, j4 R. R# t6 X
                .name = "user_led2",# v) n6 w) u8 W$ r: Q0 o9 a) S
                .default_trigger = "default-on",! r/ P4 s& n+ I# F) G1 r
        },7 M& N; w) o* C7 s5 s) |. ]9 {
        {0 V- P8 f! p  ^5 T, g
                .active_low = 0,
* x  Y) f+ h" K+ A) k4 Y# k+ r                .gpio = DA850_USER_LED3,. K( k+ ^" R1 |9 h2 P' z% w
                .name = "user_led3",
" Y$ o: k# R/ S  o                .default_trigger = "default-on",4 M, K7 k1 A( i, E0 }, B" ]
        },, X& R( x* ]' O: V% a7 s, c
};
! D. J( J2 F3 u5 j* t8 `2 ^3 X+ {7 j+ t  H
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 f9 l3 @: @0 D8 S& c/ R9 N( f9 ~        .leds = da850_evm_tl_leds,8 w- p: Y0 A. w/ A' N
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 }' n# M1 i# S# A$ }, A1 ]% `3 R};* ~4 s2 d2 z. D0 z! S
" ~& i6 F1 o% \6 \. E
static void led_dev_release(struct device *dev)
, m- l# V5 |5 T9 W; p{$ G; g+ @. y3 o- w1 I; ^
};
, g4 Z* Y$ w) H$ F* m* K6 q9 ]# r9 z( X) t% ~) K
static struct platform_device da850_evm_tl_leds_device = {
* |+ @' S$ u, o0 K9 h        .name                = "leds-gpio",8 S. i0 t( a/ O! ~" S* y
        .id                = 1,3 @2 {: O+ r0 r9 P- b/ G( S( G
        .dev = {5 l/ Y9 d( ?( y3 U' g5 _* v
                .platform_data = &da850_evm_tl_leds_pdata,; P, d+ h4 Q, p: W
                .release = led_dev_release,
0 A1 X5 S% p" l- X  q7 e* f        }
8 i4 r8 L# v; _};
$ U2 d$ N( B: F  n; q: q
1 @! A1 a( Y2 v8 @: K( ?2 u. Estatic int __init led_platform_init(void)$ ?) R3 J8 y! T2 n7 k$ h* g
{
) i) P" S4 E* h3 _1 Y& j8 Z+ F2 P        int ret;% S3 O/ N# z2 Z0 w
#if 0
+ B6 l+ o4 k8 I7 a1 q7 ?        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);$ }8 c# A# U& ^- q
        if (ret)$ X8 [; O6 C5 b- \
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 |9 B* R* J: ]
                                "%d\n", ret);$ y& c9 m0 n' B2 [" U
#endif5 d  O1 p4 t6 c9 @1 [
        ret = platform_device_register(&da850_evm_tl_leds_device);5 d3 X. w* g) V# E' {* P
        if (ret)- e* Y2 }9 Q# Q: y
                pr_warning("Could not register som GPIO expander LEDS");! C) X/ F* b6 O# q! G& g/ R! |/ l" o
        else
6 t# ]6 i' ?) L2 c$ k1 R                printk(KERN_INFO "LED register sucessful!\n");) M; z; t4 E3 F, v; T' w2 R
; }0 i7 {4 @# D0 n% `, W% q
        return ret;9 x* f7 X: Q) T3 L
}
. O# `; N6 z, X7 e2 M. e% n, ~" v$ e7 m* m4 x
static void __exit led_platform_exit(void)
7 a7 w4 w, u0 K6 J1 i/ c5 w. _4 o{
  m- _$ B! H( |0 L        platform_device_unregister(&da850_evm_tl_leds_device);
! P* u& {4 O9 N) n% O2 y( I9 z# J) |* I/ ~) m6 Q7 }
        printk(KERN_INFO "LED unregister!\n");/ T6 y5 y/ H- v
}
* T: Y7 A, ]$ Y9 o  S
$ Z/ x6 v  |9 B: ?! Q. pmodule_init(led_platform_init);& o  b+ O5 _9 g& a
module_exit(led_platform_exit);
- s5 d& Y. m9 ]  E6 }5 U" E4 f9 o- u( u/ ~& }6 D. T
MODULE_DESCRIPTION("Led platform driver");
! x7 Q- X$ k- RMODULE_AUTHOR("Tronlong");/ V  q  v' Q' U5 D. z  b4 v3 h
MODULE_LICENSE("GPL");# t7 Y" q( Q! h7 A, S7 a9 W
, u9 B1 z  J/ m3 a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-13 15:52 , Processed in 0.037798 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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