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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ [0 U' s& p& d7 o/ \#include <linux/init.h>
8 k( }3 u: C( V  y- T3 e) _#include <linux/module.h>
0 v- D# M& c$ |8 l: l#include <linux/kernel.h>
4 y! O: H. [( P+ f% ^. ?% L#include <linux/types.h>" b3 l' @. Z2 U- G
#include <linux/gpio.h>  R/ @3 @- L. h5 `
#include <linux/leds.h>
+ q, p, a& D  V( J# o: L#include <linux/platform_device.h>, i/ F9 _" h/ z! W2 w9 d4 l
% f- @; Y2 r0 e7 f  B' t
#include <asm/mach-types.h>4 S8 x/ h6 @1 p! x* `6 M( F" z
#include <asm/mach/arch.h>
5 U2 d' O5 Q5 f: `#include <mach/da8xx.h>
- u$ a" ^' m7 I$ S4 l) D- i#include <mach/mux.h>
7 b1 j1 Z% z, N8 Y& i2 c- a( Y3 o8 }/ x1 r, G2 B' o5 \7 b( L
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 v0 x3 m& U) O8 D# |; u' o# |( W9 i#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. j& Z7 }. ~/ @: {#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 j) x: H- R, H, t$ V/ u8 u#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 I6 s5 n& k; h0 H& _

% d) s) H# H. G& Y! t/* assign the tl som board LED-GPIOs*/+ Z2 I, M  m$ o: O7 y
static const short da850_evm_tl_user_led_pins[] = {! ^/ s6 r3 U' @) i$ A3 o8 p
        /* These pins are definition at <mach/mux.h> file */7 y/ R3 p4 ^: q( {( V
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' B9 V6 P* m. G: c  J) s/ g        -14 @! y" p. Y% `5 ?* {  |
};0 L1 w' s% ?  I- A  D( B
( [' {! `) N- t: j3 Z8 f9 L7 W# w
static struct gpio_led da850_evm_tl_leds[] = {# W! I5 t8 g- L$ K5 ~
        {
# V3 Z3 D+ T* i2 [# K                .active_low = 0,
$ S* Q) `% l2 y1 q                .gpio = DA850_USER_LED0,
0 z$ r% `/ h# n5 O) [                .name = "user_led0",! c; z2 q4 f) f) x! x" Z
                .default_trigger = "default-on",
- B& x: g( K* b2 [  ~! S4 s8 M        },
, s) a8 D; Y- ~# v  W8 {7 M: x        {
# M0 h; J! L, t! L# d( W+ ]                .active_low = 0,& S2 X* W6 J0 {9 D: g# S
                .gpio = DA850_USER_LED1,
' w2 |/ [" A  Z- Q                .name = "user_led1",
$ \# D3 V& O1 ^7 P, h- ?* ?, K                .default_trigger = "default-on",
6 j% p) p8 Z$ [2 y: F6 ?        },
9 l% e- k3 X8 g' m2 o        {! N7 w; d5 j( Q6 b3 {
                .active_low = 0,- M. T9 E1 I. }1 j
                .gpio = DA850_USER_LED2,
: T! q7 g* P( h5 L. W                .name = "user_led2",
* g3 q7 [9 ?$ u                .default_trigger = "default-on",% ~. E7 G; N$ X. H
        },
9 ]% k. G0 g/ m9 u/ A, w        {& [* i* ?- H0 J. h& d
                .active_low = 0,2 u; K% @. d; L- m* {1 K( \
                .gpio = DA850_USER_LED3,
9 T) g; G; ^) l                .name = "user_led3",
6 e- c  o/ u$ f                .default_trigger = "default-on",
+ j! B; V6 z( W3 k( m. F        },
7 S$ O* m8 P6 X- \2 f};
9 T: q5 Z+ |+ s) o2 z( v/ T4 }! g* s: q3 B1 t5 T
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ b" W' v7 ~) ?4 }. Z/ d        .leds = da850_evm_tl_leds,
1 s/ h) ^3 ?5 R$ P' ?& C/ r        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, ?9 s. S6 n6 X% g% R9 U7 f6 l% a
};- `5 q1 Z8 }4 r) N& r* d

$ r1 _5 D* z' C3 `! ]static void led_dev_release(struct device *dev)" M/ d' z5 o8 U2 Q6 n( _
{( @5 X# }- Y" {6 ^' I% G0 V: F8 R
};
3 {# ?& S  _0 T7 H* W. L8 D/ q* V* e! q6 L: |3 r, G  ~, x
static struct platform_device da850_evm_tl_leds_device = {8 @( m' K' p' {( S; ^( s
        .name                = "leds-gpio",4 e; D5 _3 E  M: Q, C3 Y  ?- i
        .id                = 1,, \; ^, v  ^) i& w3 X4 R+ d6 }
        .dev = {
/ \, @  T$ ^# Y7 r. H/ m                .platform_data = &da850_evm_tl_leds_pdata,$ p! ~8 |1 y3 @/ X1 I. F
                .release = led_dev_release,; y* }4 g" x2 P, n
        }
- x# R" \8 \' y3 F1 b8 d+ g};
; Q4 k3 |( C/ y5 U+ v& Q. D8 j( s" R
static int __init led_platform_init(void)' z6 k$ I6 \* ^9 {8 l
{, m/ F8 ?- y( w( p9 K& T. w0 i
        int ret;
1 Z' {( U# F0 a$ T% {8 _7 N+ ^  }" T#if 0
& S+ ~2 I& H5 Q+ _4 P$ u0 d. E6 E        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! y: w& x/ X/ X, S) Z- c& ?+ ]
        if (ret)5 p- w6 \" G2 d7 s
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" i( m, E' S) I5 e                                "%d\n", ret);9 s# H; n. k/ E2 `# }' u6 q* c! B2 n$ _
#endif9 z8 m5 }8 K; k  b! |4 ]
        ret = platform_device_register(&da850_evm_tl_leds_device);
( {8 X3 L* J# e/ j        if (ret)
: I( V$ i( o" ~                pr_warning("Could not register som GPIO expander LEDS");1 f/ R& T7 Z2 z; E, ~/ `1 @# G5 {6 Z
        else. z% r  |9 i, e& [
                printk(KERN_INFO "LED register sucessful!\n");5 `; ]3 v3 Y: l4 S- C
1 m+ M0 O. `0 o' g* e, W5 r' s
        return ret;4 f7 R- h8 s5 L; d8 f+ x% M
}) N* p, m/ T2 T0 p3 t) M) I
& e5 s. L+ Z  ]3 j& M
static void __exit led_platform_exit(void)* I! D/ {" m" o2 R
{! n! m! b1 j+ Q' J: g
        platform_device_unregister(&da850_evm_tl_leds_device);
# g0 w/ N- y/ `, @7 R9 ~2 z8 l! X
        printk(KERN_INFO "LED unregister!\n");/ P+ B. J" k; k" a; G. w
}
4 g  k% S1 F. n, L
( G4 S, ^- {, B# e9 l% fmodule_init(led_platform_init);
! @" E/ H$ w& M# p! Dmodule_exit(led_platform_exit);
# y0 X7 [6 Z4 ^5 t! ~
$ M( I+ ]8 q( L! K+ `/ @- dMODULE_DESCRIPTION("Led platform driver");
" F! k$ g6 j, N8 u& rMODULE_AUTHOR("Tronlong");7 }6 F1 @7 ?, c) v3 R5 M
MODULE_LICENSE("GPL");7 `, C' B+ K$ l0 q. [

2 G* K! Q; t' M/ X1 J/ f# o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-18 17:59 , Processed in 0.039835 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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