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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& q7 j; Y: G: |) h' Q#include <linux/init.h>
9 b7 g( \: R. j+ ~$ Q#include <linux/module.h>7 v) [9 o& e+ Q! D  e
#include <linux/kernel.h>, G! u# R# ?# }
#include <linux/types.h>
  [# G) B, V  S# E$ v( W0 H#include <linux/gpio.h>3 S4 a# e+ e$ \* K
#include <linux/leds.h>& L7 [/ B9 p$ W% q- U+ [
#include <linux/platform_device.h>
; D5 ^6 x+ p0 J* o8 `
! j6 d3 ?; C9 I#include <asm/mach-types.h>6 n- l0 x  U" [
#include <asm/mach/arch.h>+ i+ o9 G6 J$ O  o3 s
#include <mach/da8xx.h>+ r1 G0 G% T0 i: F: Q: X+ K* k$ [* w
#include <mach/mux.h>, x! {9 ]' @7 w; p
0 A7 d( i7 h: p; o' C
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 Q* C/ t- _. u  W1 n. O5 N* A
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 _6 e+ y( S* m5 m
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 ], T  B. m) S
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 Q& @, _( k: k) E& `  R. F  ?4 i2 i1 K( A) x$ g6 [; i* R; \6 b
/* assign the tl som board LED-GPIOs*/# O3 E. R! h7 P9 A4 C3 g
static const short da850_evm_tl_user_led_pins[] = {
2 a5 c( U% ?9 V+ }" Q  T        /* These pins are definition at <mach/mux.h> file */9 N+ G; L5 L# ]% {( v- w
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' ]0 P2 M) l: r
        -1
7 P4 k& V, @5 T% X, @; T4 v) ]};- R+ H- h2 m# q) v
; R. a9 @% [; ~& _9 O
static struct gpio_led da850_evm_tl_leds[] = {
. m. _, E+ ?6 `& ]) k        {
+ i- j8 |3 e: g! ?                .active_low = 0,+ ^2 ^# G- L( w1 Q1 `5 w6 |( @
                .gpio = DA850_USER_LED0,
. v4 \5 `3 y* ?$ V                .name = "user_led0",
- V+ v- n3 d* U) |' v$ `; `                .default_trigger = "default-on",1 e& _" X% s8 {& J  c  _$ u$ B. n
        },
& q! Q! D! I% V1 U, W& @9 @8 {4 A) z        {
/ h: w$ Y7 C2 o                .active_low = 0,0 v2 H: T: A; i9 {
                .gpio = DA850_USER_LED1,
+ i0 m9 C$ \1 Z* w) |                .name = "user_led1",- _( A; |! z8 R6 V5 x6 r
                .default_trigger = "default-on",. N7 A! x6 x  |. W  ]' Z' O
        }," W0 |& r2 W$ B: u) j' A
        {# B; E2 g& I9 i2 F
                .active_low = 0,2 P3 F6 w6 q/ Y! _; I* |
                .gpio = DA850_USER_LED2,5 z4 F1 W% H/ w0 A- B2 q+ F
                .name = "user_led2",
/ q- X- y9 w0 F. z: x                .default_trigger = "default-on",
4 s! j3 [$ D0 J; K- [        },
& u3 }1 J) P: @) A; W# |9 M9 P        {- l+ H% S" U: [9 y* t; R: T
                .active_low = 0,& L+ G/ Z/ e& X2 T
                .gpio = DA850_USER_LED3,
  O0 g" F& D8 `$ y4 k. [6 F                .name = "user_led3",+ \* I" C* f* ]  m- K
                .default_trigger = "default-on",2 y8 N6 n0 a, `$ _. s+ F
        },. F8 [/ }/ g- t6 J0 r. Y* r4 m
};! m& @8 ^& T* m1 h$ _9 S
. T6 e$ P. ]( v
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ ~0 Q0 p, K' g6 @        .leds = da850_evm_tl_leds,+ }0 g6 }7 v! P. k! O
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( @+ N! p% z1 F) k6 z& [( }
};2 |5 c0 U, \6 V7 Q* E' B

- V" G" n6 I4 I. W( p3 ]; Ustatic void led_dev_release(struct device *dev)
0 a4 |) \! k  _5 Q4 Y1 I{
, v( ?2 ~7 }7 H/ C};
# x; c0 j% M: v7 A) _. p9 Y8 _, _7 L4 |0 }( ^4 v+ _
static struct platform_device da850_evm_tl_leds_device = {( s2 k6 q: T0 v, @7 G3 G) b
        .name                = "leds-gpio",
$ P1 u* f1 Q0 i# h        .id                = 1,
+ |" |5 l1 G( v4 T+ d" ]! ]        .dev = {( q# i3 l& T* L' Z+ V6 g2 c+ n# b0 o
                .platform_data = &da850_evm_tl_leds_pdata," z5 z1 ?4 Q" M* b/ [& ^
                .release = led_dev_release,' e. G# F2 x+ ]+ m1 L) o
        }
! F+ w" W( k' v/ N};5 k* T$ a' z9 q$ r1 t

* e* a$ ^& h  D9 }0 y1 _) `static int __init led_platform_init(void)
/ ~# R) q+ R1 M) z( Z( J{
+ j. j8 x5 u! _; E        int ret;) `8 g9 D; s4 J/ U8 t$ Q3 }; R0 I
#if 0
- I0 P3 E4 g1 h7 m* O        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ q5 S! m! y  R  [' D3 t! |+ [) C; Q
        if (ret)% ]7 M. }7 v, W- @$ i7 o* }  W
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ N2 u" b- S: l& q$ |' W
                                "%d\n", ret);
2 }0 J# _; @" l# b1 u% i  E0 O4 @#endif8 ^0 Y( s/ f4 b3 M
        ret = platform_device_register(&da850_evm_tl_leds_device);
/ P( `" U+ i, K5 r9 B% e# c        if (ret)1 c  x; a4 `4 Y8 y2 J9 D  h- T( l
                pr_warning("Could not register som GPIO expander LEDS");
9 g% \) }+ w2 C, h3 i- r) v        else/ B; q$ n, w( o
                printk(KERN_INFO "LED register sucessful!\n");3 }6 h+ [+ ^# f$ \7 N9 q
! w( G; U( F8 j) J( o
        return ret;- T( S" w7 _# R4 K/ w1 d# r
}% y, S) ~, z- w* }* ?; C8 r

0 E7 Z; e4 S- Ustatic void __exit led_platform_exit(void)
+ m# n4 k  Z4 w+ n{
: l. [3 h, U6 L" p" a2 n        platform_device_unregister(&da850_evm_tl_leds_device);( f& \3 w( I# v) ?# Y9 Z4 s
4 d0 j8 g. ^4 d  N! d# e
        printk(KERN_INFO "LED unregister!\n");
& s. H& K; M( B& D6 k* Z}7 o" G9 R( ]; l: d1 B( p

2 q. h8 m8 g* f7 U7 Hmodule_init(led_platform_init);! w  L0 E; L/ \5 @; B( e: W
module_exit(led_platform_exit);
! s/ U/ w9 y+ ?. K0 m: i" @% s. a" f, o3 c4 w
MODULE_DESCRIPTION("Led platform driver");
- J: i- w, \7 l6 TMODULE_AUTHOR("Tronlong");
9 p) Y: c! k# dMODULE_LICENSE("GPL");9 i+ q+ \4 |/ B# M+ Z0 k
' e  o4 p8 D& s5 Z8 i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-19 06:54 , Processed in 0.039592 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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