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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。5 n! p7 `4 S0 `' k) n# G
#include <linux/init.h>
9 P, N$ k9 N- y#include <linux/module.h>
. E. Y% X4 p7 q# Z#include <linux/kernel.h>' ?: s* q+ J# R( {* D4 d  `. P* {
#include <linux/types.h>
1 v# q9 G, U& _2 D0 j/ e" C#include <linux/gpio.h>
1 M, \; n% ]5 K# |9 b#include <linux/leds.h>2 @, l& q" F8 C3 U$ _' H6 Z
#include <linux/platform_device.h>2 L  Y) @8 F8 `# V; n. h, `

7 x% f1 _% _7 B7 o5 `, w#include <asm/mach-types.h>  F  v3 L/ ]) L$ J* p
#include <asm/mach/arch.h>
4 m5 j- g3 `7 E' l* h" w#include <mach/da8xx.h>
( C  K, l9 ?' @' D1 [#include <mach/mux.h>) }# }! [. U% ^% [& K1 e1 x$ M; p
+ Y% @7 E, K6 B) o0 u1 p! j% w
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 Z' [9 ~- k- X$ u- ~#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; A% [$ s8 Q5 Y9 P- G#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)& g) Z# z- \, j2 X. N
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ f0 M( s# ?& w2 {  X: W* S
  x+ y2 A2 q8 F2 w9 z/* assign the tl som board LED-GPIOs*/
5 G; E7 x6 M8 t: r: kstatic const short da850_evm_tl_user_led_pins[] = {
* ~- e. j6 d1 S1 I$ j- i        /* These pins are definition at <mach/mux.h> file */
' k$ f/ S- I$ y; f1 A6 K        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 e9 s# C6 f; M8 B9 O0 A
        -1
' v* z8 p# J- N) O; E};
  w2 a. R" F$ a( i
+ L# G+ e* Y  M$ c+ h1 Lstatic struct gpio_led da850_evm_tl_leds[] = {4 G7 R( b# v* q! y6 {3 U% ~
        {
: O# P# j1 n9 Y                .active_low = 0,
' d) |% M1 {( m) X                .gpio = DA850_USER_LED0,
8 w8 D2 [/ w" r- b6 Z2 W                .name = "user_led0",) _. v9 z* _% v4 p- H- U$ v
                .default_trigger = "default-on",' n& J3 E5 D2 P2 F/ Q
        },/ m8 M0 f( V+ e0 \9 l/ F! x. U8 `
        {
  \0 \3 k, ~, |4 L, Y  P                .active_low = 0,
' [" v$ \/ g; O) }- C& |8 x& v                .gpio = DA850_USER_LED1,+ I4 {* p. s6 J( [) Y4 C
                .name = "user_led1",
! Y3 p1 ~" }/ i8 M" U5 f! Z                .default_trigger = "default-on",
. L- x" Y. C4 j        },
/ i( }" U' {- a1 U, F3 [        {3 `* j4 Y! K, R3 {- V2 p
                .active_low = 0,7 ^4 |  G+ d: ^# Y6 k* L3 |. l
                .gpio = DA850_USER_LED2,
) d% c6 g& x3 n1 z5 t' v4 x                .name = "user_led2",
0 z3 H  v% h; x' [; {                .default_trigger = "default-on",
  I% _$ k5 }: M, M. e        },) D9 i: i; I+ j. _. U0 d
        {
- l5 R$ R" W6 d                .active_low = 0,2 `5 j6 u  E5 V. r+ r7 ^# \5 d
                .gpio = DA850_USER_LED3,
; U1 c4 O- }$ y1 g7 I& y                .name = "user_led3",! V5 u1 M  D' R2 z
                .default_trigger = "default-on",
) h2 e, s$ ~# y        },$ R5 R- D$ v) {' e# r& N
};8 }3 _6 Q0 e1 @, {& @8 O: F6 H

& {) e( J0 D0 a' P" M  c6 [static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* o) Z) H/ P: C8 e: R, V
        .leds = da850_evm_tl_leds,9 W% L  X2 H4 A; j; n' L, |
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 Q: q0 F: Y9 Q8 O; @4 N( Z% P};
) b- R; z# \. w6 W4 }  ?2 f, U
& b7 ]9 c) W- E* vstatic void led_dev_release(struct device *dev)
1 @. l% N% R! j{1 p) @2 u5 ^. ~1 [7 d
};
/ e/ y6 l, ]" j7 I' N4 {' E) c/ |' D1 P1 a- Q' t
static struct platform_device da850_evm_tl_leds_device = {
2 W: l' f5 E+ B        .name                = "leds-gpio",
+ Z# E. T. g7 u# [( n+ h        .id                = 1,- h0 I; A3 K0 f4 e
        .dev = {6 [9 q9 S: K8 u5 i
                .platform_data = &da850_evm_tl_leds_pdata,
& W! X7 @- g' j; ?* Q& t                .release = led_dev_release,
8 I0 R# }* P( Q- o, S* R        }* Z: x3 |+ _# e1 r% I! Q* o
};
" |+ q( ]; ~3 m2 G- d
/ y( i  i; h, d' ^9 y- \. kstatic int __init led_platform_init(void)
# d$ {8 [" N/ R% r4 _{+ B+ F% C5 ~  u: M
        int ret;
! F5 v1 g2 ?2 {7 N#if 0# S2 ?: A# P6 n5 Y' f* ~2 |+ `
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) e+ v5 [" B" |5 Y% ]1 `        if (ret)
/ p/ {* E( ~2 I! Y  C$ x                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ |% T0 T" P1 _. \) D                                "%d\n", ret);, @5 B) I2 z: P+ x+ B4 d. {1 L" N
#endif) B0 X1 E: Q/ U
        ret = platform_device_register(&da850_evm_tl_leds_device);
" `/ d; `, h& D5 I5 \- {9 |        if (ret)% F0 T; `1 a6 s0 n! @3 P  D9 B
                pr_warning("Could not register som GPIO expander LEDS");
1 e+ |+ N* g" c' j* y        else; d4 @2 y# G4 |9 u* r
                printk(KERN_INFO "LED register sucessful!\n");
6 J0 R: q: f+ f8 N5 v1 E! w3 Y  J0 a. X, m3 `4 P# ]1 {( R
        return ret;
- o' u9 z+ R, h  v. i3 T}
) M$ N- |! `0 p& F* E* ~, ~$ Y& c" |4 h. b
static void __exit led_platform_exit(void)8 [& {/ s; g- l9 m4 m
{  ]# O: D4 }" i* S9 {6 Q
        platform_device_unregister(&da850_evm_tl_leds_device);
' a8 g7 P9 Y2 ^3 p1 Q' z# y9 |7 H* Z8 k2 p  u
        printk(KERN_INFO "LED unregister!\n");
+ s- o( b# U1 ^! l) N}9 E6 i' [' }8 H: b
5 n; B' A/ w2 v/ X5 o
module_init(led_platform_init);
3 a+ F' J; q, @+ @" R; U$ K! e7 Kmodule_exit(led_platform_exit);
. v# h1 K7 B& D  U# H" x
5 Y4 o1 [- c) Q% xMODULE_DESCRIPTION("Led platform driver");% f" L. `# M) f: ?
MODULE_AUTHOR("Tronlong");
1 V3 t( R$ V( Y( x7 I0 R0 EMODULE_LICENSE("GPL");
2 p+ q% t- Z9 v/ o4 v' W( {% M& Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-4 19:55 , Processed in 0.038137 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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