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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 M- h) C: U8 Y* k: z* D1 X7 o#include <linux/init.h>; h# j0 Z. r6 I7 D
#include <linux/module.h>1 u" K6 h. Z* K
#include <linux/kernel.h>4 W) Y4 V8 e  I- S+ s! F, W
#include <linux/types.h>7 V' V6 T6 L7 Q, Z! G; _
#include <linux/gpio.h>
3 ]' P" c9 [& Z5 G. E- l4 X; g6 F#include <linux/leds.h>
9 F  I4 t% v) u+ p#include <linux/platform_device.h>
; Y. q1 Q! D" P) P2 ?6 y# C9 p* x1 L) Z
#include <asm/mach-types.h>) b; w0 V. u7 h( {/ f
#include <asm/mach/arch.h>
5 `$ `3 H7 Q- j  ?. a#include <mach/da8xx.h># V" E2 ]0 f% `2 @
#include <mach/mux.h>) a  D6 |& z% |) ?4 c1 W: _3 H
4 i3 {0 f! I- R+ r0 l
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 c/ |7 ~7 v) E& N
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)$ F7 ?3 M+ L- k$ Z+ v# a  U
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( d& l; I; ?# i# [
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ o, a' E! a: u( c) n& h( h5 u5 `$ S  `7 T
/* assign the tl som board LED-GPIOs*/
, f+ h; R$ E# j6 e0 H, f' _2 Z- Pstatic const short da850_evm_tl_user_led_pins[] = {
! k8 j; z% Y4 z8 B1 b. N. W" G" X        /* These pins are definition at <mach/mux.h> file */
6 Q4 {, c$ C! s) ^: w! W/ e        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# k9 S0 P; A' W        -1
% ?/ d9 R, _  l. @: p};
  B. D8 _$ i! Q0 v/ d, _4 R0 S: Q  A
static struct gpio_led da850_evm_tl_leds[] = {
+ _( r# q0 a" X8 b+ Q4 L. K        {' a+ P/ }+ u% `5 l4 B, ^' Q
                .active_low = 0,% h5 h( B2 D: m; z9 i4 ^# c
                .gpio = DA850_USER_LED0,3 X& m7 S) M$ M+ T8 c: {' a
                .name = "user_led0",
7 ]; B5 m" W  N+ V+ y0 P( V6 B6 g4 U% q                .default_trigger = "default-on",
: G0 H7 ~3 R) h+ X( n* d3 u4 H: Y        },
& n! q, F2 v* e  S' G        {
8 }) `( I- K; J" q                .active_low = 0,4 }+ u* m6 I" a* p4 _1 Y8 ^
                .gpio = DA850_USER_LED1,+ s% [6 G6 w2 X+ v/ T: h4 R
                .name = "user_led1",
+ w0 T5 Z- D! v: J' w                .default_trigger = "default-on",
6 z# r4 p+ o! m. I! h1 d7 e        },
( K6 d" e& @: j        {, ?: ?& X. o: j; \5 \8 i" Y2 t
                .active_low = 0,
: g3 l4 b, ~6 y9 a! S5 M! k5 l* b                .gpio = DA850_USER_LED2,6 k1 }' V3 |) {7 f5 h
                .name = "user_led2",. {! z1 J- i; V& K
                .default_trigger = "default-on",
! ?3 {% \) _2 e7 n' _9 B        },& C% s5 ]) O5 Q5 s8 q7 y
        {
2 V1 [* V' V3 N( }1 ~2 p                .active_low = 0,) @, J) V; r& d% v) D0 f0 l+ W
                .gpio = DA850_USER_LED3,) Z* E9 L1 ]& l& X) G9 p
                .name = "user_led3",
) @* x* M" k) s+ {$ ^6 K; j                .default_trigger = "default-on",
- J, `& I8 _3 `8 z        },
& q5 D3 A% t& _0 u2 ^$ s. p};
+ e; Q; c9 U8 ]3 d! X
* ?6 c4 O& w  O7 e: B$ sstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. c: ~: l5 r: K6 S  d        .leds = da850_evm_tl_leds,  F# D! _8 Q. M1 N( P
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( |) W) ^; d! o: }3 g8 N9 x+ ]};: _* s  m, k: J
8 \4 K& p; X, X9 w
static void led_dev_release(struct device *dev)
5 P: H. O* @: R3 V- |: D' N{$ y* m% I- h% |7 h; q3 v3 Q
};
7 [! D7 q1 i6 U% e. e+ H6 h1 r. e% @* L8 D+ G
static struct platform_device da850_evm_tl_leds_device = {
8 [& j. O6 F; X: Q        .name                = "leds-gpio",. a& y  T9 M$ R$ t9 \% P
        .id                = 1,4 @% g- A5 c$ @
        .dev = {. `0 O6 R, F9 v/ e' m
                .platform_data = &da850_evm_tl_leds_pdata,% i! W9 Q; D- X% W  Y9 A
                .release = led_dev_release,
$ y; E6 I: ^/ u* x( l" k; ]% t        }8 h& {* T* h5 U
};. l7 o# f/ m. w# j5 n
  _6 d6 w% p$ ]0 H. E+ y4 S! x
static int __init led_platform_init(void)0 t2 _3 d( r4 Q( {6 n6 Z+ ?- w
{9 v$ ?4 N1 P. e; V1 z
        int ret;
- M' k0 k" i5 `) y! K#if 07 m% c$ }* _: n# e& S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);8 q3 Y5 d+ Q! N- V1 z+ V( U
        if (ret)2 ]2 q: m: c& f! D6 I( q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 \/ `! N* u8 B+ I# {' E" M
                                "%d\n", ret);2 S; z4 a5 x9 X% _  ~8 m7 r6 v- z: o3 `
#endif
; e2 X* K. W/ D" O        ret = platform_device_register(&da850_evm_tl_leds_device);
7 v6 @& H5 r+ o* s5 P! u( n        if (ret)2 K4 q# B, s' e  }7 K# ]" i
                pr_warning("Could not register som GPIO expander LEDS");
9 h# R+ Z3 l4 D) `8 U4 D3 \        else
4 K+ l5 n- g) |" q3 Z- r                printk(KERN_INFO "LED register sucessful!\n");3 c0 b5 E! }# e$ _% i

7 X& P" @; E, d4 G4 O; }        return ret;. C4 X1 z8 H( _$ d/ C) W- Y) S
}
: H8 M, `4 g9 ]. S( N1 g" q  u& |5 _( t
static void __exit led_platform_exit(void)) I) Z  s2 D4 u# r3 h$ `2 e0 Z
{  s* f, |- \* [9 d( c9 K6 b
        platform_device_unregister(&da850_evm_tl_leds_device);! J) Y0 Z: ~: I, t" B" h
6 y: Z2 t: P2 n4 B
        printk(KERN_INFO "LED unregister!\n");0 s. E3 W) M" r- M' y3 A) O6 {
}
: G0 f) x$ o6 B/ C5 [
( v2 T1 }! m+ b& S' C" }module_init(led_platform_init);9 c2 L3 ~2 C7 O6 ], ^" p# g
module_exit(led_platform_exit);
7 y0 R/ x' o& i: y2 b! A
! Y8 l" [4 r5 M& |/ T9 qMODULE_DESCRIPTION("Led platform driver");" g1 T+ B' a2 ]5 E) {
MODULE_AUTHOR("Tronlong");; F% b( i) G( ?, K0 C
MODULE_LICENSE("GPL");
' Q( e/ |5 L& M2 j/ J: B0 ~6 t4 Z( b) t4 D8 l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-3 21:28 , Processed in 0.040993 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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