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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。5 \& O/ W+ h! n, {6 F' Z/ w1 W
#include <linux/init.h>: W' l! _" M2 X+ p2 f
#include <linux/module.h>  K% P' ?. V+ d
#include <linux/kernel.h>
- o& G) M& b/ Y#include <linux/types.h>1 [9 }) j% ?' T: L2 @3 e" s) X* w
#include <linux/gpio.h>  }1 F6 n6 H/ ?0 t# P9 n2 C6 \' m
#include <linux/leds.h>
! g  J" w6 n& V6 z: y  S. u#include <linux/platform_device.h>/ V* o/ k% ^! M* @2 P# N9 k1 Y' p" g

/ z" H0 a  v& l0 j#include <asm/mach-types.h>
  H  k- c7 w# S  G# b#include <asm/mach/arch.h>
9 n$ L8 l$ a) Z' d1 l8 Q#include <mach/da8xx.h>
( Y  e7 }8 a0 u- _& C2 p8 X. S#include <mach/mux.h>
* r/ \; `" J3 R- Z( D: C, f/ l  {
; \  U+ y( r* x1 y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 D' O( |+ V5 X
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): o% t, T6 u( ]0 I/ H
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; j$ B7 Q/ Y" _+ ^0 V#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 x0 J1 f7 J8 R8 ^

4 F2 _. W2 ^; |/* assign the tl som board LED-GPIOs*/0 O1 Q& F6 @2 W  }
static const short da850_evm_tl_user_led_pins[] = {
# R0 P/ Q! D1 `- \( X0 B* U        /* These pins are definition at <mach/mux.h> file */
0 a" A# A5 P3 Q; I% h+ l8 H; h# j        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
. [7 L  S6 \- S) @        -1
: `7 }; V8 B, P3 H+ [% l' A};
% a5 x- T7 }$ ^5 K  u" x$ ~- Q) [7 D% V1 s8 d5 o/ [
static struct gpio_led da850_evm_tl_leds[] = {6 q! f. P4 x5 U4 W1 L
        {. m& \( M4 L& Z8 {
                .active_low = 0,
$ L  S8 X  m  F% t5 F                .gpio = DA850_USER_LED0,* R# J; v+ c0 z9 P6 [
                .name = "user_led0",
+ T8 C4 [: r7 i6 w4 h                .default_trigger = "default-on",- ?  G, \7 R# F  Z
        },
- I2 I  z% ?3 Y) V7 c  u        {2 X/ {$ i3 ?8 T3 s8 x3 q0 ~# ^9 \
                .active_low = 0,5 Q) O" x8 m) m6 i
                .gpio = DA850_USER_LED1,
& e. S: T- Q" x$ m                .name = "user_led1",/ f& q* s, n" b7 {6 R
                .default_trigger = "default-on",, E/ [/ _* E: r2 b
        },7 j& R4 m) D7 h
        {
1 \  O! I4 N% O9 u( h* @                .active_low = 0,9 Y9 J8 d2 m* J$ {% h. X
                .gpio = DA850_USER_LED2,9 p- v: `2 G6 Z: C; ?* O5 O
                .name = "user_led2",' d' u8 t4 M  K) z3 o9 t  N- m7 i
                .default_trigger = "default-on",
+ T' m0 F) @3 j6 ]        },( O' V0 `6 O; m0 @
        {
9 X6 \% b. I* i4 C! z                .active_low = 0,& F) D* t* W4 R' G; j$ j0 O1 Y1 p
                .gpio = DA850_USER_LED3,
: d  t: a  d4 W! y! E- p, {                .name = "user_led3",
5 m* x# Z; ]  ?4 ?4 P3 D                .default_trigger = "default-on",. C% _+ g* T1 ~. N) _% j* m: u
        },( m+ U! \, x3 {$ Q$ K  b2 O" ~/ n
};! q$ V8 E: w4 v; M+ h6 G) {9 ~, R

3 F6 k7 ]2 f+ J8 N8 pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) _2 }& B' P* V& B9 g) O; s+ v5 `; ?        .leds = da850_evm_tl_leds,
" t& b6 m* E% K! w        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! P# K) W0 u" E2 V6 X% Q5 p, \8 r};
  w2 R4 L# `& s3 N
8 \! y( ]& O7 d0 y' i* I, mstatic void led_dev_release(struct device *dev): e+ k' i' G3 f+ J' |! W; R8 F
{
0 x7 N- o1 r5 O) l" n: w};# f* T% c) P; P' q/ V3 D

4 w4 a7 V! q0 v, y$ F% ^static struct platform_device da850_evm_tl_leds_device = {* t( r- u/ v1 D8 H3 c
        .name                = "leds-gpio",
: V1 @9 }& s$ h, d        .id                = 1,
( K) W% s! v* |/ v% E. q7 S        .dev = {4 J6 d4 F: g' }5 h
                .platform_data = &da850_evm_tl_leds_pdata,
$ N* O3 g* Z. Q* ?0 ~+ a                .release = led_dev_release,& q* @! A6 @+ t9 R; ^  k- X
        }
$ n7 z5 i# e! U6 Y};+ \1 _, |7 U- j" `
8 x) ^/ Q9 Z  }% J
static int __init led_platform_init(void)
1 T; Q3 w  `! C{
9 Z; I9 X/ s% L        int ret;
) p4 q% j7 C1 Y7 i" b2 D#if 0: p/ S8 g/ u: E$ O& }' o) `% s
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) v3 \" h3 _1 m% E
        if (ret)
/ {- Y) G  i7 V: C, u, s( y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) m+ K) y" f) ]                                "%d\n", ret);; R5 L2 G; q& T, z
#endif( i8 M( [) K+ o5 O) J# u! }* e
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 x  L7 K# G: H- |! f" n        if (ret)
, e9 p$ @: F( L5 H( m2 E7 H7 M9 ?  G/ z                pr_warning("Could not register som GPIO expander LEDS");+ q& v, M" ^* g+ J! y
        else
- q' ]- ^  g3 U, N' T                printk(KERN_INFO "LED register sucessful!\n");8 y: {: I% `0 C
" r7 U( E2 s) H& y2 M
        return ret;
1 W7 E6 q5 H% p- [}
, ^& Z7 F$ ~/ H
, O4 G8 O: d" n5 X: f: Bstatic void __exit led_platform_exit(void)
. _: |) I! t2 u0 N6 Y6 y$ h$ j{: U6 e* ]& G( q; D5 ^0 u
        platform_device_unregister(&da850_evm_tl_leds_device);
$ |# d; e% `% g* A/ I" f3 e; R2 @
        printk(KERN_INFO "LED unregister!\n");
% `/ Q( ?5 n! t1 a}3 g: O' o4 G- O0 h8 k

6 C$ J. n: e5 U: n4 e% j6 K; c) Cmodule_init(led_platform_init);
1 B- y- N6 g/ t4 `  pmodule_exit(led_platform_exit);
5 \+ {! v. `* b1 a& g
" U" m) f4 A- D7 q% @6 v9 `& {MODULE_DESCRIPTION("Led platform driver");4 T* S+ G) A' i
MODULE_AUTHOR("Tronlong");
  X4 |& [- q. }9 HMODULE_LICENSE("GPL");
+ K  j8 F5 g. U6 ^$ s2 Y& A* D! b8 x7 u  C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 13:37 , Processed in 0.036577 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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