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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ {! K- }. a7 P$ ~, X, J
#include <linux/init.h>2 ]) p3 B/ x8 W8 K0 F
#include <linux/module.h>
5 o; h, ]6 T1 i# q5 s& \# t#include <linux/kernel.h>
7 K, K  ?, }6 J  o# @5 d#include <linux/types.h># r) Z7 `4 Q; N$ ]2 J1 Z
#include <linux/gpio.h>$ N% c0 T- y6 F' k& l( l
#include <linux/leds.h>
5 O. n* t7 b. U4 O7 C#include <linux/platform_device.h>
- k/ C6 U/ P9 o% t+ o7 C7 A
6 u/ Q; g' i, v#include <asm/mach-types.h>. R& e) h; E, P! `, s% A
#include <asm/mach/arch.h>
9 @  s) _- Q5 \1 Q- e9 |. d#include <mach/da8xx.h>: C2 M" F, H+ u  w6 l
#include <mach/mux.h>4 @* e- ~+ Q% T# x3 [
3 l6 [" l) J# I$ Z1 }
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 d+ [9 W) R! a0 Y9 M3 i#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' E* W3 ~+ R$ b#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( l4 q$ B; G  p7 R+ k. h% _9 u
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)* o, f  q- k. c; ^/ x" B
# }# P% _* v' ]
/* assign the tl som board LED-GPIOs*/
$ I# ?6 t  \9 _8 s" O; ]static const short da850_evm_tl_user_led_pins[] = {
  p0 [. O' X: J6 {% a" R* {& P1 Y# D        /* These pins are definition at <mach/mux.h> file *// X+ b7 {; r* H0 Z# X% T
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ H* g4 q& P& @, S: s
        -1
9 v9 S8 h6 |" k! C1 Y};8 ]0 l2 s8 V+ z. E
9 Z+ j- f+ ]; r' b% Q1 u
static struct gpio_led da850_evm_tl_leds[] = {
- ?* x+ B# I) W4 u3 L7 Y) P        {
) \3 E, j' ~* f+ Q) @  H                .active_low = 0,
; x6 u# r0 Q0 T4 Z' M6 q                .gpio = DA850_USER_LED0,
/ i: a/ |% `9 N6 y4 r# j                .name = "user_led0",3 ^3 e) h; `  L: v9 l( v* r
                .default_trigger = "default-on",
1 z+ M( X/ E( x: ]* M& H        },6 w9 ?) p' f. U) e3 j7 b9 ]& m
        {+ e+ M' E$ l' F9 B$ n
                .active_low = 0,0 j' N2 V  e0 Q8 j2 N
                .gpio = DA850_USER_LED1,' z4 Y( \3 I* J5 |  ^
                .name = "user_led1",- H% K$ C/ g' o
                .default_trigger = "default-on",
% Z5 _7 g3 l# C' l        },
' P* ?* g; i# L, v( v$ C        {) j5 M# l5 r" g) {2 A) e
                .active_low = 0,3 s" n: A5 |7 l7 O# y! a
                .gpio = DA850_USER_LED2,
7 c! A/ H4 r+ {                .name = "user_led2",
  u: P+ J' K: C& |- W* v                .default_trigger = "default-on",# K) M/ v/ |& H+ E# `' W
        },
' t* m2 D4 e  W: B/ w        {
( W6 a/ f: K1 b* j7 w2 T                .active_low = 0,
6 q' J% |# A& j  f5 ~                .gpio = DA850_USER_LED3,6 B2 f& c+ ?5 O7 A. f! n
                .name = "user_led3",
8 z; Q  \) Q) A- C' u! Q( }                .default_trigger = "default-on",) @# O1 [/ g- k) k/ \5 k
        },* A+ X1 L6 i, `& F+ \$ c( |" ?
};( ^+ N! |4 U! G& E

' K; \" p) ]$ A2 xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' ?( G- d/ W2 O0 ^        .leds = da850_evm_tl_leds,2 |; a1 O: t1 y. j4 D  q- z
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 j( m+ a' F1 H7 f9 Y) S: m3 k};
" r8 c6 E  l/ O3 t% j5 ^: z5 ?- d' Z) N0 y8 _1 A
static void led_dev_release(struct device *dev); U* Z9 ^4 G1 o" n) x- A
{( q" [* g0 n4 x# c( O% r: s6 Z: E
};
8 ~; Y- `, ]2 q6 [7 ?  k) ~7 w" k5 ]2 E
static struct platform_device da850_evm_tl_leds_device = {
7 Z& M' c; H9 l( _. n        .name                = "leds-gpio",0 |1 n9 I1 C" ]. }/ z+ [
        .id                = 1,/ C, J# l( i6 D8 |5 @7 k  F
        .dev = {- T' H, O) f" r$ v
                .platform_data = &da850_evm_tl_leds_pdata,
. _# `* }; T9 p                .release = led_dev_release,/ W: _! s  h0 H9 t# z
        }
7 z: y2 r/ s0 B: f};
8 E! {, q+ ~. Y. _' M
' S2 l# b0 I4 }( y7 Istatic int __init led_platform_init(void)+ R! I4 U3 c' ~# k( d: N
{# x& s$ o6 f& ~
        int ret;
% }) A7 Q5 N6 ^( {! v& v- E#if 0
! [7 q/ d% [' N" f$ L1 f( N5 d4 |        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ u' o4 x. u# T6 W6 [5 g& ~
        if (ret)
0 s& W/ d6 O6 y3 p! v2 h) s: J                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 k$ E. d* t' R
                                "%d\n", ret);8 p+ v( g9 s# g# E% V
#endif
/ J( j0 G6 P. a6 r; s& E) F        ret = platform_device_register(&da850_evm_tl_leds_device);3 U1 q; t  t$ K3 d6 z% F: ?
        if (ret)
3 }$ o$ k* B2 f% d! ?6 W# I                pr_warning("Could not register som GPIO expander LEDS");
3 ?& _2 m1 G- y  {1 R/ M( ?        else3 f3 Z; w0 m- y9 w2 ~/ k1 q, }
                printk(KERN_INFO "LED register sucessful!\n");  i2 ?2 `7 h9 p; H& T' T

, K6 L: e% r; _7 L% a        return ret;6 Y8 y3 N+ d/ {/ ^
}# @8 q1 X/ H' c& q. b
+ L& z- |1 \( N1 E: m0 M3 h% k2 e+ B
static void __exit led_platform_exit(void)) B' S) P1 E8 S2 [/ ?6 T' T
{" v5 G9 e1 j! ?% m9 V8 E
        platform_device_unregister(&da850_evm_tl_leds_device);
! [2 H" B$ c& g) j7 S
2 e8 H8 ]# U9 c# H" B5 ?/ k7 h: [        printk(KERN_INFO "LED unregister!\n");! v' g" r! |' @" a$ z6 h
}
; T! r. x  Y- ~. v4 S$ |
3 b) C1 `$ O8 l3 ?5 \6 Wmodule_init(led_platform_init);
$ z5 T" j, m, Y' i6 h7 Ymodule_exit(led_platform_exit);
! y6 c7 w/ F7 m; e( r+ k2 c
% m' v+ X( o. O. ^- J% H1 jMODULE_DESCRIPTION("Led platform driver");
2 M4 U; ^$ z9 |0 qMODULE_AUTHOR("Tronlong");
* g; C: }0 d' h1 SMODULE_LICENSE("GPL");
1 [) @% f+ k4 I! _0 q* k* M3 u3 d$ Z( K& ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-18 02:14 , Processed in 0.039630 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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