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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。8 N8 s% l+ h' H7 S+ h. {* q
#include <linux/init.h>* j- C5 W& |$ e. U
#include <linux/module.h>! k" O: @6 a7 r0 _0 Q
#include <linux/kernel.h>& [% `* Y- f* m* d
#include <linux/types.h>& `/ j5 {1 J! t+ V5 a0 t
#include <linux/gpio.h>
: Z' l! b. M3 Y$ U#include <linux/leds.h>
- f0 W9 z3 ?: L0 o. C% V: h#include <linux/platform_device.h>
4 Z% ^" x( l5 |3 m& b# b" |: J/ ^) [) s$ U: n
#include <asm/mach-types.h>6 {9 ~) K6 L; B6 C4 @
#include <asm/mach/arch.h>! I8 S" b* N% s. A  F; X
#include <mach/da8xx.h>
- K9 U, i4 R: q, _1 [. w#include <mach/mux.h>) k5 K* e4 }  l* Y. Y* S

7 L. {$ V/ @  M0 K) a: O#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 r+ J. ^, S7 g* R
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 F/ j0 M& }1 L
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 h5 F- V0 `8 X#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% o4 w9 A$ e8 d) ?6 O
0 _) R- c  s7 A: r% r0 ~1 }/* assign the tl som board LED-GPIOs*/
) M% m8 u$ m. d, e! R, @, ]static const short da850_evm_tl_user_led_pins[] = {7 u0 ~, E- x8 |5 A
        /* These pins are definition at <mach/mux.h> file */' |' v4 X6 O! F1 ^# i2 H) d! w" F
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 X+ b* ], ]  R8 C) Z! }
        -1
, o3 p1 y$ V1 j3 u* h};
# K) R2 h# E9 L5 \& B% K8 k
: [3 q, K! L8 }& z2 j4 kstatic struct gpio_led da850_evm_tl_leds[] = {
) q1 S% A6 s6 M+ |2 V0 P+ |        {! v) ^, `& N* j! \4 _/ `$ K, _
                .active_low = 0,
$ z  V9 Z2 [+ r" w; ^                .gpio = DA850_USER_LED0,
8 B; z$ ]4 s3 @2 w5 `1 n# R* K                .name = "user_led0",$ G; w8 H( o) K) j
                .default_trigger = "default-on",
& c' p4 S0 {" T/ Q        },3 t4 u/ T' [& d
        {
& T  u: m( R8 ^& {1 n0 H                .active_low = 0,
& U  }" A% N8 A, w: l: [                .gpio = DA850_USER_LED1,, {% n6 n( c* `! i- {
                .name = "user_led1",
2 u: E, A  Q2 V' _2 f( Y8 Z4 K                .default_trigger = "default-on",
3 l" i2 h: Z' B0 W+ L* X4 M        },2 o  _+ y4 \# l- E8 K
        {
: L3 l- I! j( i  D$ l5 t                .active_low = 0,$ ~  `0 Q2 p2 z6 S* f( Y# R& }  G. F
                .gpio = DA850_USER_LED2,
2 Y& @  h1 A3 `) T                .name = "user_led2",
% g0 M! J. L4 J' K' ?8 Q7 {/ ]5 K                .default_trigger = "default-on",
$ J: g- y; Y0 K6 w+ K4 ?        },
5 p: J. \9 A5 Z, k9 a5 L' P        {
5 c1 Y8 f, R$ ^                .active_low = 0,
$ J; X  z2 z. g6 l- j+ x                .gpio = DA850_USER_LED3,
% }7 W. ]: T1 a3 K4 R$ M                .name = "user_led3",- k  E, U: K. E) ^
                .default_trigger = "default-on",% w( `$ ?( g0 c- W
        },
8 W9 {" k* ?5 d. w3 T4 r};
( j. I0 f! {$ y+ Y, U/ l6 X
# L" ~+ h" @' l$ Fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, {/ b1 ]6 [/ f' J  r' ?        .leds = da850_evm_tl_leds,. I9 y2 [: [' A# M5 r- r6 [! e
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: C" x6 ?* o7 b% h- r6 Q};
) f) d; x+ ~& a: k; \* q- E) A/ P+ M+ [+ O: R& J8 n; Z* V
static void led_dev_release(struct device *dev)% X$ h% u0 j! Z
{
: U- ^2 E1 h; j" M7 {; c' U};% k1 Y0 J$ K, A3 Y/ e& n  S
) t2 K- c7 B" T, ]( c
static struct platform_device da850_evm_tl_leds_device = {( U: s- @# }4 i% g* m
        .name                = "leds-gpio",
3 G1 f+ d4 o! Q: Z+ H' W$ i- d  \2 a        .id                = 1,: W2 ~; O5 d( i
        .dev = {
$ k. X2 J: y( Y                .platform_data = &da850_evm_tl_leds_pdata,
: _* n' F3 R# I5 F- L- M% l7 c9 ]                .release = led_dev_release,+ }5 e( K' n) F: ?( ^; h: H
        }
0 U( p% x% a+ ?: D+ m0 u: E' V};
: }, i/ m% @1 w) u. b; J2 }" M6 c) i, N( r- [2 o6 Z
static int __init led_platform_init(void)
* }) G  w' j; W) \8 p" O$ v. Q* w{, S& E' d+ ~3 v! {6 Q9 ?( b
        int ret;8 h1 Y5 g3 n: ~# n. K9 c
#if 0
0 O6 b' t1 H7 v        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. c- Z: M; ]+ c: M        if (ret)
7 \" J# n/ o1 y5 A                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) H; g, m+ o/ J: j                                "%d\n", ret);- l9 `/ l2 J  P- j6 S- E
#endif4 ~% i5 Q: w0 k
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 V2 d2 T$ T4 E: M: Z        if (ret)6 F- T1 J" Q  z3 x1 b
                pr_warning("Could not register som GPIO expander LEDS");; _$ _4 H* j& m
        else
& c% ]/ h' G. ?. ~( I                printk(KERN_INFO "LED register sucessful!\n");
: z, D6 Q1 }: d. l% l
" c$ r. K1 X: z: ?) V" i7 N        return ret;. {- E- d3 I2 }) h2 t. s
}
0 W+ N  D$ @( d0 t1 ]+ h  k" j" i0 h$ y3 \& S' }  b
static void __exit led_platform_exit(void)- {& m6 {: T! Z' q+ F& j
{9 m. c; l1 [. M3 Y, R
        platform_device_unregister(&da850_evm_tl_leds_device);
1 q8 s0 ?2 P* @0 N- p) d- @% ~/ A9 ]4 {/ M% Y
        printk(KERN_INFO "LED unregister!\n");
- x! G3 S3 m- j6 \) A  ~}! q6 ?9 x0 v* x; y' q4 f
0 t+ L4 |& K" m: {. a* E$ ]
module_init(led_platform_init);1 N- d: C/ [& h' L5 ?( l* m
module_exit(led_platform_exit);
8 V3 R$ k9 \, \+ c
; y/ s5 S; b6 JMODULE_DESCRIPTION("Led platform driver");  m+ D7 k/ l* v* K! E
MODULE_AUTHOR("Tronlong");3 p+ p5 d9 g9 l
MODULE_LICENSE("GPL");7 o8 @: {4 ~/ b- L3 O# i7 Q1 v- F
6 ~/ i+ u( r- B" @( d  M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-29 18:20 , Processed in 0.038701 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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