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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 I) F  ]  F: P/ B2 `; e% s#include <linux/init.h>
1 H; H9 `. }8 w; b# u( \#include <linux/module.h># a8 g9 E5 S) K2 h9 M8 B
#include <linux/kernel.h>) T" f! p' V6 B5 b' H6 S$ V
#include <linux/types.h>
6 b" t0 M. K9 }5 ^- c- P  w9 E#include <linux/gpio.h>3 l/ o7 d+ l& z# n$ o
#include <linux/leds.h>% V! o4 ~' r7 h0 @! w, f& H) X
#include <linux/platform_device.h>  r8 @3 ~8 E# o9 C* ^! o
2 k: K9 }8 d0 P8 h
#include <asm/mach-types.h>
- l- H4 J# ^* {- i/ R#include <asm/mach/arch.h>
$ n) f6 A8 `* @  j* s* C#include <mach/da8xx.h>
( }0 E. t% N7 {8 M5 r+ Z: b#include <mach/mux.h>
. q: J" ~8 {1 h; f, a% f0 h6 u5 r/ u
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- h% r1 p& G# G% m: s+ V4 m#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  {" m+ Z: G, j- V8 i- B#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, |$ N' T+ P6 ~3 v' ]  v3 S#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 p# H2 v( P- I
1 X) ^7 T# q# U) z) a" T
/* assign the tl som board LED-GPIOs*/
0 z0 \& J% x+ }5 [) z4 Sstatic const short da850_evm_tl_user_led_pins[] = {
/ o0 o4 ]& l5 o2 Q/ F* A        /* These pins are definition at <mach/mux.h> file */
6 G0 i2 u% S2 E: u& J% H        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 k3 G6 e/ s. T' K
        -1$ O4 T1 g4 Z* H& s& f) w1 Y; D* F
};
# A+ O" V( A- |/ o# E" w7 ?3 i1 b# Q0 L% j* q
static struct gpio_led da850_evm_tl_leds[] = {
2 \, i3 Y( v# G) m; k) X8 f: c. h  o4 D        {
; i: C4 H% H+ T                .active_low = 0,
! T% v/ h; c4 f4 N: X" k                .gpio = DA850_USER_LED0,
; Z3 u3 j2 ^# j* I* t  ?4 J0 \8 T                .name = "user_led0",
6 [* O& h7 Y; t" \                .default_trigger = "default-on",
7 z2 D; l$ [  G2 Q/ m& w# d        },0 _8 l" m: j  Z" i7 E3 _
        {
7 C9 D! Y1 |7 L$ S                .active_low = 0,6 @- a3 M. ?$ K) l. Y+ O
                .gpio = DA850_USER_LED1,: {  E: T" R( s. d3 H. e* Q! b8 [* S
                .name = "user_led1",
. }1 `& M" F$ D8 D7 @                .default_trigger = "default-on",9 o1 l  w" I, l, Y6 N( F, Q. O
        }," L: a9 Y4 k8 J% b' }
        {
- u8 j1 J7 m' [: o2 P1 y* x$ X) l2 z                .active_low = 0,
/ O+ a: E( n* U# B% T/ ?$ S                .gpio = DA850_USER_LED2,
0 t( x# J( `8 A: f7 k                .name = "user_led2",
3 {) J6 G. e' l+ {) S                .default_trigger = "default-on",1 O% E8 ^8 L$ ~4 t
        },, l( ]% F( w! a) s* J
        {/ |1 `( r! {8 ~2 Z% E
                .active_low = 0,' L! a' ?3 n0 [8 }( R
                .gpio = DA850_USER_LED3,! d; d$ f5 {* x! B' a
                .name = "user_led3",
+ `9 J' W  C9 x4 L6 P5 ?% F) Y* D                .default_trigger = "default-on",+ q, j8 n0 r$ I3 M9 y
        },
7 Z) V3 @) c% W* C$ o5 j};
4 V. ~* k$ k% q5 T9 o, C& |2 _1 q% m& X; m. H; g" `6 |
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; W: M0 h) L( n3 A# e5 Z        .leds = da850_evm_tl_leds,
% i- F/ r6 v- A% |# `        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) G# n( B& V; P; n; ^- h# p};
) P5 b8 {" M/ J/ }; m
+ Z5 p& M7 u$ T) n9 dstatic void led_dev_release(struct device *dev)
* n# r$ s% a5 {* Y$ P{1 {+ ~$ ~* P! r! w; \& @. d
};9 H" x( j8 s' x' l; W$ j

/ @! `$ K$ M; N* Q$ G. V( Wstatic struct platform_device da850_evm_tl_leds_device = {
2 a+ V4 a* Y$ C* J$ [6 r        .name                = "leds-gpio",
. g/ z5 c3 l. l        .id                = 1,
& J1 j# q; j' J. T' ]        .dev = {5 Z- T& S/ p9 m2 {7 \
                .platform_data = &da850_evm_tl_leds_pdata,
+ K# J# g4 A, ]                .release = led_dev_release,
+ t& `% L5 E* K. v4 f5 z; d3 `        }
# e( }. z2 [- |$ h: V7 I1 m  d};! t" b; F2 _, D3 C
' t9 j+ z! P3 Z; C5 v0 @: o
static int __init led_platform_init(void)
2 R3 T/ v  K% S3 g  T  h{  x/ r" A6 T  [" Z, @: S( h* Y
        int ret;& U6 e* d0 D  l: u( A" U9 |3 n
#if 0
( c5 |. J2 E% @4 S+ H' f. s$ L        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ D% ?5 n( `2 ~  L) `  i        if (ret)
+ H  X  S5 `0 Y3 F                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, W' C/ U) G0 \+ L* G! s                                "%d\n", ret);
' ^& K' v' g" [' e) |#endif# y9 F2 p4 z; Q0 g  D
        ret = platform_device_register(&da850_evm_tl_leds_device);
" z- l" x; v" v. p! S; I        if (ret)& o0 n+ R  _% i% b/ f
                pr_warning("Could not register som GPIO expander LEDS");; G$ p; T3 K* h. c2 r
        else
  G+ W8 K' A! j) G7 `5 C5 g7 u                printk(KERN_INFO "LED register sucessful!\n");
) u7 C, [" r4 B: N0 E9 H( C" n! @0 h* a0 U- m: ?, Z
        return ret;7 B2 d; e, M5 {4 b7 {
}" L: `1 c& g; k( h( D+ V
2 N/ Y& h' n) o
static void __exit led_platform_exit(void)2 S9 h; }, F5 X+ W
{  z' F7 T+ d7 a" @6 M, K' G
        platform_device_unregister(&da850_evm_tl_leds_device);
. `# V9 J4 e" G% R! `( B  ^+ C2 h7 S3 Z% @" T: y: O+ W4 w( g
        printk(KERN_INFO "LED unregister!\n");
4 n9 v$ g: K* h1 N+ P+ S/ v}% b8 j4 k9 i2 k

4 q( I& ^, Y( W& p5 amodule_init(led_platform_init);
* r6 A& [# T7 o" c" smodule_exit(led_platform_exit);
1 U* h$ R# V! J  S
& s+ `4 D3 B% M. |7 x7 c+ {MODULE_DESCRIPTION("Led platform driver");
$ W2 F9 c) R* Z2 i2 m$ sMODULE_AUTHOR("Tronlong");+ ~# Q: \1 V3 B
MODULE_LICENSE("GPL");9 Y- D2 L7 Z/ H0 p8 o
/ N& j6 W5 ]! F1 \1 ?6 G* e. m, Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-3 17:53 , Processed in 0.039063 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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