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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ I; ~6 N/ l0 c" _7 t
#include <linux/init.h>- C$ {: t# Y. y, ~/ R& r2 d
#include <linux/module.h>
- G& X" k) b. p#include <linux/kernel.h>
- u( [9 V' ~; Q1 v#include <linux/types.h>
! P, H6 V. t" R, q( S#include <linux/gpio.h>
- P" S, k  J4 E1 a( T, [#include <linux/leds.h>
& R, P, e( G4 R# L, }+ p; T#include <linux/platform_device.h>
0 I% W' ~, B1 p0 B3 X; m7 t& L0 j8 s6 \4 x  O
#include <asm/mach-types.h>0 r; \& Y9 B4 L. D7 R
#include <asm/mach/arch.h>4 F/ g6 ]4 y' R. S  C* i  [
#include <mach/da8xx.h>  {; d" ~1 I: H3 Z& r
#include <mach/mux.h>6 r$ n$ G! ?/ o7 h7 p5 S8 x

9 K- P" d: M- K5 t4 L( ]#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) ]- v/ o. O2 {1 w6 K2 ~7 r# w#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& n7 T8 {8 ^8 v2 M$ Y( T#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
3 b/ ~; W, a# g#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 P) {" N% T( C+ w- @9 F
% [9 p5 j7 x0 V0 l, U: I/* assign the tl som board LED-GPIOs*/5 Y( J: h3 p( z' f
static const short da850_evm_tl_user_led_pins[] = {8 W9 a+ c" Q! d- U' ~7 C: P
        /* These pins are definition at <mach/mux.h> file */  w0 c2 v. ^" L$ [* w6 @
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 W! O* _( k4 F, x
        -13 q; w. ]5 w  b$ Q  Q
};
6 u! j! j1 K/ K" j
7 y8 X0 F: f& h$ l; S" b. jstatic struct gpio_led da850_evm_tl_leds[] = {5 X3 c# i% ?0 [4 M5 X; Y
        {
3 S# l/ J& W0 d" v; d( {4 c+ M                .active_low = 0,. D( O) z+ W3 }+ ^3 ]6 R
                .gpio = DA850_USER_LED0," M( V* t) G* n6 V. n& x  C
                .name = "user_led0",
/ K% l% K% \# T0 C; o                .default_trigger = "default-on",
8 Z" C; M$ [- S- A8 D. X        },
3 [& s& L6 Y7 R' C9 B. T/ x$ I! j        {2 @3 M9 z0 `5 E: |$ o0 A
                .active_low = 0,; |' l, O9 @1 S0 t
                .gpio = DA850_USER_LED1,
0 S  b) R( z  v: g                .name = "user_led1",) c" G4 [0 e# w# a$ i" u0 f7 C
                .default_trigger = "default-on",
! p/ A: N8 }2 a5 c9 M" p  L$ g        },
  Q1 |$ Q7 ]0 ^4 F+ i        {) n' U+ x& ^0 ~- ?
                .active_low = 0,/ ?4 m: b- v4 \8 N+ d+ M! y
                .gpio = DA850_USER_LED2,
: q: a# z% v3 }9 Z  H( O+ Y                .name = "user_led2",
0 O* H* c! c/ M5 q2 y) X& n! A                .default_trigger = "default-on",
6 S5 f& _- T6 j/ O" Y9 ^/ f        },% [/ v- W; C5 t) W1 @! x
        {
0 i% l8 V8 ^! E" B                .active_low = 0,
& M1 R, o* e% U/ w2 j* i" o                .gpio = DA850_USER_LED3,
$ U9 {! J$ ~  S1 {# L6 C5 _. ?, L                .name = "user_led3",$ v7 g* d# H7 h  m' o
                .default_trigger = "default-on",- k! R& ]0 @' `$ o. r
        },) H2 p3 N+ ?  |
};' R$ j) |' B5 w. Q

, J+ k0 k3 @3 H) zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. A, U; H" K' O; i7 \) c0 A
        .leds = da850_evm_tl_leds,
7 O* X! j% C, P) U0 |, B        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ H  t" N% H" R  U+ D
};' A& B& p2 e6 n4 Z

5 R5 w9 H) N0 Z; s3 s3 ]. jstatic void led_dev_release(struct device *dev)8 G6 U* G: X* C1 w3 d6 K
{8 ~3 L' D% i+ g9 ]) I2 a) `
};0 `5 B- S, H  P

! Q7 S$ x8 x7 I' n2 q, J$ fstatic struct platform_device da850_evm_tl_leds_device = {
- C# Y+ y) d% g, [0 Y        .name                = "leds-gpio",0 `; h4 L3 F% O( A- s8 I
        .id                = 1,
, Q& v/ v& ?/ ?2 E        .dev = {) {8 f8 }' c0 {
                .platform_data = &da850_evm_tl_leds_pdata,9 W3 D' ?8 C/ Y4 U6 _1 ^
                .release = led_dev_release,
$ }. }1 y% T4 @0 O, _; j8 N        }/ M+ R' p& i: E" y/ j* }
};0 Y( d) H2 u& V" z. @
% t! M4 c: q) p0 u3 [1 q
static int __init led_platform_init(void)
% a6 K% ~# G/ O0 \1 [  K# l) w{
5 _/ q. E: ?! X6 o7 _* R        int ret;: J; F4 J4 @# G4 o% g: X3 Q
#if 01 t4 l# M! @# @. _) m' F2 E& K# c
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 f, M3 @6 D4 J" F& P
        if (ret)1 D1 R0 `- h9 B, i% r4 U
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :", n- N: E5 U5 R5 G5 j; y
                                "%d\n", ret);" U. [, |2 e$ O* k  ^- I& e
#endif
% }5 {* g  P8 g. ^" J6 r        ret = platform_device_register(&da850_evm_tl_leds_device);# Z) |' S4 E7 _" M* J- `
        if (ret)
8 B1 w$ X7 J& e                pr_warning("Could not register som GPIO expander LEDS");, ]) @$ r2 F1 `; R
        else
0 r, @( ]+ _3 d, f' J5 D                printk(KERN_INFO "LED register sucessful!\n");
* N, `. ~% A% K. Z+ a3 _# m$ x# V3 _
! [3 I8 ]- {( I5 r        return ret;& D3 v2 D& x% W9 z! i
}* E2 I( w5 t6 A8 @; W9 ?
$ ]* d( ~( k( L& y9 M: l( E
static void __exit led_platform_exit(void)' D/ J$ G& t" k& L* U$ h
{$ B' r) y6 X3 e  N
        platform_device_unregister(&da850_evm_tl_leds_device);
/ u' \9 D1 a5 j" J; `
7 g$ c- t# i( Y4 L9 t        printk(KERN_INFO "LED unregister!\n");
: J6 R8 h0 U" n" E}
3 ]3 Z, x3 |2 g) P1 I) {# a4 j$ H% T9 M. n7 d% @9 N
module_init(led_platform_init);2 v* X7 m7 r' g
module_exit(led_platform_exit);: Z& ]  u2 `4 [* d6 D% y
" A& y1 F9 }- \0 o
MODULE_DESCRIPTION("Led platform driver");
- c' x& M8 v, L  f# pMODULE_AUTHOR("Tronlong");$ p6 }( x9 \& P, T( o( v
MODULE_LICENSE("GPL");
* Y/ y! Q1 c! i) R/ L$ Q" E8 l# L& H; p6 g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-2 23:26 , Processed in 0.040666 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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