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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 V0 W) `. K0 U8 R#include <linux/init.h>
7 j/ \$ i  L' Q8 K9 x#include <linux/module.h>
) t% o, c$ x5 t$ F- Z: y#include <linux/kernel.h>
- f: P' S! \- S; b, k#include <linux/types.h>
' x- }0 U; ~5 P- ]#include <linux/gpio.h>
) j0 L2 B  c+ B% E& k4 D#include <linux/leds.h>. Z) V, D! b( ]9 j2 Z4 [1 r
#include <linux/platform_device.h>
3 v3 m. H9 j9 F* x1 f! i; m( i# B7 A/ H; \/ b; G4 @& y- a
#include <asm/mach-types.h>
3 |1 q% m: ?4 P#include <asm/mach/arch.h>
, B  A# p8 f9 J#include <mach/da8xx.h>$ q6 a- D) ]5 E) z. v
#include <mach/mux.h>7 `, {1 L6 `/ S3 t4 l
  S; w% i5 ~& \3 q5 D; \9 j
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* [: l! f1 Y4 Y! y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)$ H% ?9 K' e- f- z* N2 {
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' L4 Y9 {2 z( s% |) s: H- l" }
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# Y2 {# j) |! ]

6 P+ b8 w; v/ F/* assign the tl som board LED-GPIOs*/
9 M% w4 c1 M2 p) [; fstatic const short da850_evm_tl_user_led_pins[] = {$ q8 K, o0 U+ m6 j. K2 C
        /* These pins are definition at <mach/mux.h> file */1 v& V8 P0 M+ k- I7 j
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ U, N' m& G! C6 y' n# A) O; m
        -17 {6 B9 s+ E, I: X" E
};& D2 E& `& l9 ]7 _2 A
) z/ F, }6 s4 l: R! E
static struct gpio_led da850_evm_tl_leds[] = {; P+ p2 I7 E& _: Q* S
        {
& o5 ]  Z. x2 F1 z5 `1 \                .active_low = 0,
8 O3 d* k: S8 D                .gpio = DA850_USER_LED0,
( }. s" F8 v- Q% X/ B! X3 v* m                .name = "user_led0",+ b4 C- V* r) M  v. u
                .default_trigger = "default-on",9 }' n- O+ k: d
        },7 `' X- c$ H  C8 {9 R
        {
6 ]% o' A+ d7 f( L  J, |                .active_low = 0,
& `8 g% O! z8 I6 \0 L7 O: e: V                .gpio = DA850_USER_LED1,5 i& d% p' z0 e& Y
                .name = "user_led1",
3 x2 L$ z/ [) ]; u                .default_trigger = "default-on",
8 R2 B0 }3 M, r        },
. H. C% c! v) ^! `3 b        {
9 W7 A0 W1 c/ w                .active_low = 0,
4 U8 a: @1 q2 k, l, l                .gpio = DA850_USER_LED2,
  ~* H8 d1 x! ^* B                .name = "user_led2",
" Q& K! ~+ x( _                .default_trigger = "default-on",
$ r9 N' r. l  r+ x7 A5 S1 D        },
- ?# M0 \4 ^' w  K0 G- o        {
+ Z) t# D& A+ R% \" e- r$ c                .active_low = 0,
  `! v' ], R. a5 K                .gpio = DA850_USER_LED3,
( w& }; i% D& G- [- C                .name = "user_led3",
0 L. h% u) y: L$ q; u                .default_trigger = "default-on",
/ t) Y' C( ?9 A5 f0 A) V. w        },
8 I9 ^0 l% g* o2 R2 ~8 g! D) C5 G};
1 @' x3 n( k- Q# W4 T6 H' u! y- [, p) l' N3 J1 K3 e
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* M7 @8 ?2 \$ `
        .leds = da850_evm_tl_leds,' q3 S3 A! u% ^% f9 T8 C( o+ @" {
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" L' J% N& M% ?6 g3 R) w};
: O$ N8 Q. g2 p0 J& Y) M! L
. l0 y) L! }3 B! \* z. P6 c# Fstatic void led_dev_release(struct device *dev)
/ i+ d4 X: c* `8 p8 O{6 t( c8 i. F5 l* C
};
& G" ~& q5 ~& f, k( x8 ^, X
2 f1 S. @) @: dstatic struct platform_device da850_evm_tl_leds_device = {
+ h2 _7 a; q+ q" s, t7 R: Q- P5 S7 I        .name                = "leds-gpio",; H/ V/ m. Q& T# s' A
        .id                = 1,
& F" s& z8 a" }. `! S        .dev = {
- `# M" [& `- y4 n! A4 C) u                .platform_data = &da850_evm_tl_leds_pdata,9 M4 w! d& Y8 ?# w! n
                .release = led_dev_release,
' [: j: |8 i1 I        }! Z) \1 k: {# I! X
};" h9 f# }+ e' B7 N% x! H
8 F/ }! ]3 n) `, ^, I! i( \8 M5 A
static int __init led_platform_init(void)" c4 d$ S, }  n
{0 F# n" P  j# O/ q
        int ret;' U* A. c) L2 o+ q% X5 S# d3 e$ x; l
#if 00 b' D& w& d8 r! G$ k. m. y! ?
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! X( `' [1 d: `4 {5 \( l% A/ G, R        if (ret)5 o. \5 |7 F7 O; }3 E; _, R7 t
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 v, O. K+ O6 Q, w( d2 M/ d" b  `                                "%d\n", ret);
* A" N+ F/ {6 X9 o+ |7 E#endif  y! b0 J. }0 S' c' B2 l
        ret = platform_device_register(&da850_evm_tl_leds_device);9 L1 z+ Y' s9 k! |% m
        if (ret)5 Z- |0 J+ M/ R6 U  |. X6 l1 L
                pr_warning("Could not register som GPIO expander LEDS");  |8 U9 E! t2 M% V0 I. S# q& X1 h- G
        else; Q$ n2 X$ _0 v# H6 v3 v% A
                printk(KERN_INFO "LED register sucessful!\n");  [. j/ B1 s7 A5 Y. C4 S3 R

$ f4 c: }% I( W8 ^        return ret;$ {- K  c: v: y8 B1 ?
}2 |. C/ x6 k4 G% {4 V
( |+ ?: }2 t5 J1 I' e3 d
static void __exit led_platform_exit(void)
/ D2 H  U1 T; L( j{% C  K" A$ Q7 W+ D8 E
        platform_device_unregister(&da850_evm_tl_leds_device);, U- u( @. I, U: O" {
3 s! P/ s% o. a, r7 c% {% H- N
        printk(KERN_INFO "LED unregister!\n");
. @0 |( f3 [( i) U}
# }) F2 F1 e9 H6 R. }6 q/ q& ], D! Z8 R$ s0 h) I
module_init(led_platform_init);* p6 T% @$ H+ k
module_exit(led_platform_exit);% y$ V  G6 }+ c7 _* ?8 d) L, {+ }% c. d

$ Z/ Z2 @: z) ~! MMODULE_DESCRIPTION("Led platform driver");9 n* _$ ]- }2 H% n0 p( z4 l
MODULE_AUTHOR("Tronlong");$ j6 h$ ]0 z4 P# w8 ?
MODULE_LICENSE("GPL");/ b8 y) n+ I+ W& N0 T, ^

  W) _$ G- P( \4 M( ^9 N, n3 S) F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-1 16:46 , Processed in 0.038572 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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