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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" S0 f% X' z& h#include <linux/init.h>
6 h% ]& E9 I& M+ `1 m" N! i( d#include <linux/module.h>% u4 U& I% K( R8 C6 h
#include <linux/kernel.h>' c# A" @0 Z9 d
#include <linux/types.h>
) w8 c% T8 F% P$ Y! O3 f#include <linux/gpio.h>3 K4 R) l3 |1 i+ q
#include <linux/leds.h>
  b6 G2 z* G& \$ G* {#include <linux/platform_device.h>
0 B5 P& l1 }/ r' R+ G* |1 O# E7 |6 ?8 {( Y' G3 K6 G
#include <asm/mach-types.h>
4 `* q4 j9 _: [: b' F+ S& ]- O#include <asm/mach/arch.h>9 ~  f" u; A( ?' H, w
#include <mach/da8xx.h>- [0 y+ s) G* r5 `
#include <mach/mux.h>+ ^0 s% x6 u0 f' N! K

" {" J1 L9 g: z7 @% a# X& Z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" k: I/ w" v$ L* B0 A2 B
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5). h. A" {8 L( Q. E
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' f! J, ?% R7 o3 d8 P  b' I#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ I$ R, M# b$ j% n$ C$ C, u0 m4 J, L
) ~/ Z: u1 o" A3 n+ N/* assign the tl som board LED-GPIOs*/$ [! X; Y" \0 G' H7 Z
static const short da850_evm_tl_user_led_pins[] = {
" B! r  J3 v5 F# Y  ~7 m        /* These pins are definition at <mach/mux.h> file */
4 P( r$ j5 Y/ U        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,& `3 v& q8 V+ F$ H9 }7 w. J
        -1. E5 q! V, o  g: m1 o, }9 Y# G/ R
};! b' d4 y6 T; r4 C; S/ e

7 s9 x  j% r- Q- G" `/ ?8 I+ w* qstatic struct gpio_led da850_evm_tl_leds[] = {* C. d8 {2 x7 f( i- J' `# e
        {
0 f) l+ d$ f6 K8 Z) Y$ `                .active_low = 0,
; B) _: Z0 t  C6 N; _# h+ E                .gpio = DA850_USER_LED0,
  a6 H( @+ `5 V. _6 [( m# G& {                .name = "user_led0",$ P- T+ c8 b. o) N( }
                .default_trigger = "default-on",
4 b3 u- z7 Z" Q* ^( H1 H        },& P! M8 [6 H3 ]( @4 r$ X
        {) F6 A) X: @4 i: I- k3 S
                .active_low = 0,
6 }- {8 z/ {* D                .gpio = DA850_USER_LED1,
( P0 T& p/ x8 }$ p                .name = "user_led1",
& N- L  Z- c* ]0 {6 l! w                .default_trigger = "default-on",% D2 I( e/ j! k) F( z7 G* f
        },* {, k: F  H; ^6 k
        {8 }! m2 v6 V( \" r2 J- `. g# W) T+ f
                .active_low = 0,5 w" |( B$ }- P7 j0 a9 W$ }
                .gpio = DA850_USER_LED2,, F* B8 ?/ w  ?
                .name = "user_led2",
0 A% v7 S, e# N# I  j                .default_trigger = "default-on",' F: O  n# C# W( R+ R0 I6 N
        },3 {4 R# r& m- f  ^6 `% f  \
        {
: o% d7 e9 q6 O' j                .active_low = 0,
. h: k+ n9 X3 R" y                .gpio = DA850_USER_LED3,
6 t5 H, w) h6 r% o                .name = "user_led3",2 h; l4 q1 z- e: B  K* o' h
                .default_trigger = "default-on",  K3 c* Z& A5 V: C: ]
        },: z' W% E% ^, \# z+ \
};  n% ]: \6 d/ s* H- }

  B+ B7 b& ]) \; c8 ^static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* v. |8 t0 g. F! X9 F, Z        .leds = da850_evm_tl_leds,
2 p; K0 F  g* a2 G* A. Q0 [% X        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ Z# z  u  Q- n8 u% X: f
};
, A, P% o& k/ B1 }. [' c% j5 _' X! ^7 H
static void led_dev_release(struct device *dev)
( s: S% q2 ~' d/ k' J{
. s9 b; A% w! H, M* w1 Q' ^) ?};6 p! u8 W! m& p$ r

# g9 {. X2 }: v) O7 y! H8 L$ ?! istatic struct platform_device da850_evm_tl_leds_device = {$ X5 C4 a) r* a1 l! m
        .name                = "leds-gpio",
4 ]% u% H$ p; y        .id                = 1,1 E9 s. ]( O' e" |( ]
        .dev = {
1 z1 g( z3 _5 |0 Q1 B                .platform_data = &da850_evm_tl_leds_pdata,
0 D. [9 F8 o5 M/ m8 w/ |: ~' z                .release = led_dev_release,
+ W0 ?) x  j  ]! ~0 V, t4 H        }( h+ B7 ^9 ^; d* x
};) m6 z" D, p% F5 a% L% Q' P

9 l8 p: s3 F: Y8 a( q& ~; s1 W3 istatic int __init led_platform_init(void). W* J5 W; P. ]/ k5 h) r$ j
{/ G  e+ T8 p3 T- m6 U  r
        int ret;! h2 w% I' I8 O  k' j- z
#if 0" V) A7 v5 C9 U" B& s8 Q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, P# F& W% S; T        if (ret)6 t5 A4 G  Y' r( x* \$ W2 y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- u# u" I5 R) b, _' A' B+ ^                                "%d\n", ret);
3 u$ x* e! [% B4 U  @, |2 y* H& s#endif
- N; c- `9 J4 ?+ G( O2 T  b5 {        ret = platform_device_register(&da850_evm_tl_leds_device);6 v  V- [& x, b8 _5 ?" q
        if (ret)
& O$ h# {( i) D% v                pr_warning("Could not register som GPIO expander LEDS");
; U+ M0 O% W5 D) c        else
0 Z9 |9 O- h+ a  ^4 U0 E                printk(KERN_INFO "LED register sucessful!\n");( p" ~. h5 c4 w. x1 L. j
$ Y# r9 i0 i- U- r
        return ret;
) ^# g( S( b( G}% @. h% ~) x) r2 p
# g4 x" y$ K, e. T6 o8 y/ Z9 c
static void __exit led_platform_exit(void)/ r/ |& a3 L& V9 J# K# {
{5 v4 j0 p' W; M! e, X/ A% \
        platform_device_unregister(&da850_evm_tl_leds_device);$ a4 S' j( e- Z

, b5 z& V( g$ r7 V, c; f" z        printk(KERN_INFO "LED unregister!\n");
9 J3 e% Z" @3 T  y! e) O4 ?}
! ~% X, d7 I( ~9 P' J! w0 b( u
# O& z5 c; w4 V5 E( Z2 W; H- vmodule_init(led_platform_init);
, T! S2 R% O% r/ dmodule_exit(led_platform_exit);
7 k& x# l# x9 i* M; d4 S7 y! L" `+ C
MODULE_DESCRIPTION("Led platform driver");* e$ ^4 u+ M9 e2 j% m1 U
MODULE_AUTHOR("Tronlong");
7 l2 d. f; E) Q! L6 l3 M9 {MODULE_LICENSE("GPL");
, q" [) L) G2 v( Q8 `0 H9 Z
8 B2 J& O/ r- i! o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-13 09:14 , Processed in 0.046203 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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