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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! A; C! c# h% E/ K. T" @#include <linux/init.h>
4 z$ T7 k& c+ K3 v- u, U) Q#include <linux/module.h>3 w8 o( }4 e* ~. f
#include <linux/kernel.h>! K# E! g8 w- D2 s/ \. S
#include <linux/types.h>9 X5 Y1 x: V& O
#include <linux/gpio.h>* o6 R3 `! R6 n* Q5 R- F
#include <linux/leds.h>
" ]. {& C* G* Q5 S( |#include <linux/platform_device.h>
; O6 o6 _/ k$ u7 J2 J- o. M: A5 T4 G. ?. A; K
#include <asm/mach-types.h>6 t) a2 Z+ }2 e; X* V( F. p
#include <asm/mach/arch.h>
6 q  x( h' a# Q( l+ G$ j" p#include <mach/da8xx.h>: G/ e" I" `4 B, w
#include <mach/mux.h>
3 U6 q: n* W/ |; E) z% b3 h- b$ Y: c: A
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" M8 ?" _3 r# d' W" B6 E+ s! e
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) O, i& Y( u& e7 z% @4 U#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 o/ q' w/ V1 T% P3 q, A) {8 @
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- @% u% [5 x! v0 _4 \/ j7 R$ r7 q: \$ _6 V( g
/* assign the tl som board LED-GPIOs*/
' b" O6 _- M, O; p" S3 ]# Gstatic const short da850_evm_tl_user_led_pins[] = {) y# C! m5 y( p1 X$ G! t8 Y
        /* These pins are definition at <mach/mux.h> file */
; G0 |/ [6 K4 B) `; a7 d4 J, z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* o+ S, K1 V, m/ W6 q
        -1
7 f9 F. {/ R$ J* }0 M: @};
" K2 O7 b* O  K3 j" P/ q# L  z, T: m' l5 q  o+ a
static struct gpio_led da850_evm_tl_leds[] = {: W% E9 I/ O) `1 D! U
        {5 D8 K+ a9 u, \8 \% _! j) r( F
                .active_low = 0,6 L8 S5 `/ @3 b5 V3 k. C
                .gpio = DA850_USER_LED0,
2 C7 w" B/ r5 i9 L. w6 F                .name = "user_led0",
7 M; Z4 V% Y8 H, B                .default_trigger = "default-on",9 d4 H( ]& M! k. N* a
        },
. C% L' p, M5 Q        {% @' P  q4 |( t
                .active_low = 0,9 F# R( C5 l/ N+ H7 g$ D/ x
                .gpio = DA850_USER_LED1,6 H2 o, \, r, S& T" f. N0 a
                .name = "user_led1",5 Q6 c. Q. [# y5 I( C
                .default_trigger = "default-on",
; n8 a) m) p3 c  f& t  p        },2 C7 [" z! c; X1 A- Z1 Q
        {
+ J4 [$ N4 b6 Y0 b% K                .active_low = 0,
. c1 {9 o: T/ }5 y7 F) _                .gpio = DA850_USER_LED2,0 T4 m, g9 Y2 Q% L3 g
                .name = "user_led2",
# K" q& n5 f2 S. \4 m                .default_trigger = "default-on",8 v& J3 N! n- s. M$ d& @# I
        },7 H9 m5 M: E# P" L# C1 a
        {
- }5 s* U3 H2 \% x# R9 R                .active_low = 0,
: i1 S6 M$ R" l4 p4 P3 ?% ]/ z8 e. ]                .gpio = DA850_USER_LED3,
9 V- R' Q1 z, ^$ f8 U" r3 R; ~                .name = "user_led3",% W# Z: B) {$ S) V, B, ]2 m, Z
                .default_trigger = "default-on",
% n+ F4 q1 P3 Z% D3 y        },
/ G! w' R- {' e};
7 X, I4 h6 Q9 t! a! j
5 s' v, X, U4 O) N/ Nstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 _0 d0 t* n9 l& I% |/ K" w        .leds = da850_evm_tl_leds,) X% g5 [; n, v+ a5 G8 }
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 }  Y2 I' m6 w; q% _
};7 w- I# p7 g3 m* |

: A$ t1 V  M# b7 C8 e5 `# cstatic void led_dev_release(struct device *dev)
' {- R& Y4 u( O& v) Y) `  K# `{8 y+ |' ^/ B6 C! S) m
};
7 C! V3 [. f* O; U1 V2 s! ?" b8 V- k# ~$ A; j9 g  X3 k5 ]7 l
static struct platform_device da850_evm_tl_leds_device = {
( w' ^: L9 P- A5 [2 N2 f% |        .name                = "leds-gpio",
  }! z; Q. a% i$ ~! R2 h0 a6 m        .id                = 1,. K+ {; u) Y1 F9 j! _9 }
        .dev = {" b! n4 k$ @: y0 R- Y$ N
                .platform_data = &da850_evm_tl_leds_pdata,9 Y% m# ~6 U5 z. L: p& |$ k4 c. P  Q
                .release = led_dev_release,
& q% {2 @& K5 O( \! q4 D8 L2 d" v        }- }: g* t9 V2 ^/ k5 j) m+ u
};
( I5 U/ j' d- p7 G
8 H) v6 o! j* Kstatic int __init led_platform_init(void)
8 f5 _4 y8 D& S3 r" l/ V{, X& E3 q$ Z1 T% c! _  D. h- j
        int ret;' E5 t! T! E: V1 u* t
#if 0
  }$ L: [5 e) |  t        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);/ z% ^, O* U# s' _8 i$ |) r+ d" a
        if (ret)8 S# a8 E( a6 q$ `- b
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; V9 L" P* w7 }& X9 h5 L; |
                                "%d\n", ret);
4 U2 v+ f5 r4 n# T3 K) v5 Y#endif! U! }6 @- R  m& w+ z% s2 h4 H
        ret = platform_device_register(&da850_evm_tl_leds_device);
# ~3 P/ B+ z$ A9 m        if (ret)
8 X: }2 _* e8 X& m                pr_warning("Could not register som GPIO expander LEDS");
: S% r/ Q% C+ b9 W        else
! I# ?" a8 }, ?- Y1 L                printk(KERN_INFO "LED register sucessful!\n");
( q  R- I+ L2 o
( |7 n9 f' E$ `5 A" m, f; r        return ret;
! e8 F) I, N5 @9 H# f' Z+ x}! l, u% m# }4 e9 R& s, B2 B
- `5 Z6 [( D) K. J, ?2 k! j. y* F& K
static void __exit led_platform_exit(void)
8 ~1 G5 n; L8 N9 a, U{
) P/ g( ?& P2 F$ e) p2 ]        platform_device_unregister(&da850_evm_tl_leds_device);
" P& ~+ G7 j& {! x1 k1 l
; _( P" P2 T. p1 c$ ^$ k9 j        printk(KERN_INFO "LED unregister!\n");5 V: v2 D0 l) [4 O
}# u( W2 Y2 W$ d" g( e; k/ ~& D& k

2 Y: [( S7 d9 y- D) W0 ?module_init(led_platform_init);' p9 d. r5 S$ h) W
module_exit(led_platform_exit);5 p' U, }+ N9 w' h8 q1 C/ D
# ]0 ^  [7 a8 v+ k4 L* i
MODULE_DESCRIPTION("Led platform driver");  ^2 j& q" G% U6 W0 [( K0 A
MODULE_AUTHOR("Tronlong");9 o* a0 z$ ]8 H1 G4 j  {; {2 ]0 |/ B, r  @
MODULE_LICENSE("GPL");' y% Y4 |1 x7 Z) W8 c+ p

! G; E* y& j; \: @2 |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-6 08:50 , Processed in 0.041358 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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