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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 V, E3 k& ?/ |& F3 p) u5 r% S#include <linux/init.h>0 _, b; N+ _1 e  h
#include <linux/module.h>
2 h1 `! L# x+ ]4 a. I#include <linux/kernel.h>
) D  L8 m+ O: Z! Z- B* F! m7 i#include <linux/types.h>
. T+ i/ l/ y4 r* h+ h#include <linux/gpio.h>, S+ X7 ]/ Y5 ]' ], N* _3 v- x
#include <linux/leds.h>
& j! V; p: f* z! k1 \9 l' I" H#include <linux/platform_device.h>
5 t3 }1 b  h7 D5 ~/ D: a
; {" I' D7 G  K) u, B& k  N#include <asm/mach-types.h>
4 ]) O0 `; K3 l2 H1 b2 h#include <asm/mach/arch.h>4 C5 o2 v: S- [( o; }. Y* D: Z
#include <mach/da8xx.h>
! N" [6 R" @3 b+ `6 A+ `- A#include <mach/mux.h>
( v1 O( m! x+ Y9 d5 u8 C1 m8 H% @( l9 X; X6 W  c5 n6 H
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ r* {$ _1 E$ g+ f) a$ I( \) z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, z+ `7 @2 {4 U# g; Z+ F" C#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( m0 o, t/ R" t9 P' V7 {3 o#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% g. z2 X" ?1 t+ k, ~4 R7 f3 p) T4 ?7 s+ u" ?
/* assign the tl som board LED-GPIOs*/& U' _6 J' d& |3 K7 k. R2 t( O: y
static const short da850_evm_tl_user_led_pins[] = {
7 H& ~% S& A" i, A3 |! t        /* These pins are definition at <mach/mux.h> file */4 J3 v+ Z2 x5 F3 N  Y$ ^
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) i( L" E  o' m. }3 U4 S        -1
, ^* I" P3 i- d% q};7 i5 C6 C( E  `. |' z4 P$ V! Q

9 q3 N; B9 \' z# L. ]1 dstatic struct gpio_led da850_evm_tl_leds[] = {6 b  a( r1 [+ s2 C- `3 a
        {
& C. y1 K, z! X3 l- `7 I* h                .active_low = 0,
! f1 n6 H- V; J+ E                .gpio = DA850_USER_LED0,
' Z3 x3 D8 P; O4 C$ t" X                .name = "user_led0",
" h' w1 R. B0 w* b                .default_trigger = "default-on",+ a# Y0 N+ K8 o% y* [& x7 V/ a
        },2 E" V% E) G: h3 \5 V0 t
        {$ k5 y5 ~' R2 ^/ f
                .active_low = 0,
. v: l- [1 a  G/ M, O9 Y. Z                .gpio = DA850_USER_LED1,
8 R' X4 A$ E, m" I7 v                .name = "user_led1",
0 t( q: e4 J9 d: j" s1 u                .default_trigger = "default-on",
! q+ h  e3 {, ]$ G; q' q        },) m9 L0 j3 B2 I% S6 n8 Q' n4 v# g$ n
        {
  n3 a0 O( y3 c( X" V9 {- i                .active_low = 0,9 a+ \5 V8 e% U! H" J
                .gpio = DA850_USER_LED2,
6 R- y7 L$ f# x                .name = "user_led2",
: P" Z0 c' `0 K8 Q  j  T' D                .default_trigger = "default-on",
4 X& H& ~) ^% X! r        },* [, q8 \5 L2 |( E, S2 q/ ~- Z" r; R+ i
        {
& {4 F$ T, w1 T  F3 x                .active_low = 0,
3 p) z# @/ K$ V" x3 F                .gpio = DA850_USER_LED3,5 B! m! ^7 A/ f* K5 S0 J( X
                .name = "user_led3",
3 t6 |8 H6 U+ W5 ^0 _/ n                .default_trigger = "default-on",
' B, H. |  |: {' [( u1 ^7 G        },
' }0 _  O- f& d6 b};
5 q. X" h+ T2 @5 U  T6 @6 D8 r* P! i$ ?
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- d: g0 y3 V- a# n8 S4 b
        .leds = da850_evm_tl_leds,, P% ]; Z- z+ o
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 G- r$ g( Q- L! z( Q0 O};0 B9 d2 h# R3 Z
* [7 U4 O; t! G( G2 s9 c2 J
static void led_dev_release(struct device *dev)% H+ z9 D5 B, ?- v* a4 j) n
{; T3 \1 Q2 I' |' C4 `* }
};
) b5 W$ Y/ K6 `$ ?$ M/ a1 l! `4 a( H$ P2 T( X) N" [- u& m
static struct platform_device da850_evm_tl_leds_device = {
5 `% M% E. I. Y2 u2 |9 P* i        .name                = "leds-gpio",
! z' s# ^* m' H+ J; s5 P7 n        .id                = 1,
. x" S' |) X" d$ D* E- x        .dev = {7 R, K: c) N+ m7 x
                .platform_data = &da850_evm_tl_leds_pdata,4 W* [! u. b  ~1 B6 i+ d- s, b
                .release = led_dev_release,
, e- ?  }9 R! B% F( f5 M  h# f        }
0 N& f( F9 I( D; A! e5 K};6 L7 c, L, E# N# ^. R, y
5 ]' p5 P7 O0 l2 n5 T2 J
static int __init led_platform_init(void), d& i0 Z5 p# f4 p& C+ b' [
{
7 V# u9 d; m6 Q        int ret;
5 W# m0 H: u/ n5 f#if 0$ n6 ]: @- d4 @1 v8 U9 [) o  _
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- T" l/ P) s' t' M: Y        if (ret)% M  _6 k8 v7 B3 K/ S0 T
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": w- S5 Q) F  {4 S1 ^# c8 l
                                "%d\n", ret);  ^* J8 X  E5 C, R0 ~' l
#endif  d% c& T; H- q; T; h  O  E3 `" _
        ret = platform_device_register(&da850_evm_tl_leds_device);" S- V5 R1 _, {
        if (ret)& i  u. h; ~$ v* F( q4 b
                pr_warning("Could not register som GPIO expander LEDS");& H7 v- ?* R& N, l& ~1 `, ~
        else
8 O- D; c( E+ `! M0 G% h1 c) @0 [                printk(KERN_INFO "LED register sucessful!\n");$ P  [1 Z, U! i: s& P% t7 F
4 E, x& ]( Q8 X& t
        return ret;& I& e7 s9 |9 Y# j8 y; J
}
# U+ T# E5 g8 v6 e8 z" A
) E9 b/ r' S& ?/ `static void __exit led_platform_exit(void)! ?" v1 j; l6 W9 F$ A
{; [# ^$ E$ N* X
        platform_device_unregister(&da850_evm_tl_leds_device);
$ r: I- X" g6 X1 }: X! ]
1 w* t# l9 `. v9 Z5 D        printk(KERN_INFO "LED unregister!\n");4 I, P: q* U: U; l
}
! b% b9 F% C7 U6 x" b5 C) Y2 [
0 K! f" B! _9 N/ }: p7 ]0 wmodule_init(led_platform_init);( Q* P: H! @& ~; h6 ]3 [
module_exit(led_platform_exit);
# d* {: N# D( Y4 S; l5 \9 q# x* t. H' f+ b; u7 B
MODULE_DESCRIPTION("Led platform driver");
/ g& J  R+ ^( LMODULE_AUTHOR("Tronlong");( ], P$ u8 f9 [- r# W3 Z& P
MODULE_LICENSE("GPL");' z# l$ b. ~! B. ^/ i

/ b- v! y7 A3 a  W+ ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-9 22:03 , Processed in 0.037245 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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