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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。: i3 D- x$ K1 K: i- W
#include <linux/init.h>
7 y7 Y! m7 r" c0 c4 P5 e% p#include <linux/module.h># G* a3 U! M3 I' @( p7 C- |
#include <linux/kernel.h>
4 |1 E+ B# j* r6 t8 P#include <linux/types.h>
! q$ {# E$ K6 o) n+ J#include <linux/gpio.h>: @. A( p- [( D* o1 @1 P1 p, z
#include <linux/leds.h>
- y# @% k5 f$ q0 L* e" i( ^, w% J#include <linux/platform_device.h>
1 U( Y+ r8 p" L: a" Z7 T& |" D( W, b- Y2 C
#include <asm/mach-types.h>
. t- {5 d" t: [& m/ p#include <asm/mach/arch.h>6 }6 ^9 M# X+ Y/ @0 G: S
#include <mach/da8xx.h>
: q8 g/ `9 P: J4 [% v#include <mach/mux.h>
, c3 G8 ]8 j5 P. f  ^1 o4 Q! P1 u* p6 f  L/ ]' Q8 j
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 l9 r, s8 L, V9 v, K  D#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( O1 S' \" i: M- }+ K* i. I
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 y7 j' M4 m. y' h4 k
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" w; d* `$ J$ M, N% p
' E( r+ D4 H  d+ ?+ u# h8 D
/* assign the tl som board LED-GPIOs*/
3 l/ ~/ t2 W2 E! I1 estatic const short da850_evm_tl_user_led_pins[] = {
' h3 K/ [/ P6 x0 H# K) I        /* These pins are definition at <mach/mux.h> file */* E% Z$ _+ H; L) @- {" I
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 [0 v. M. h  I; c& Q" }2 a
        -1
- |7 C0 F+ f7 d! j, D# R};
. L& K. W, F! h  R+ D* u* c
' N2 |  h# I# k/ |3 `, Dstatic struct gpio_led da850_evm_tl_leds[] = {! C% C7 X  H6 d8 {  [4 M+ |
        {
& B5 b8 @8 j5 |; r: n                .active_low = 0,' S) _: G% h* A0 e
                .gpio = DA850_USER_LED0,
! `) |# D5 v7 n  g( g                .name = "user_led0",: X/ F  A& v- C# u0 P0 b: o
                .default_trigger = "default-on",. V6 x6 v$ M/ k: j
        },
, A) Z4 V- M+ y  ^- B* M" r, c        {
/ \% l2 h/ F0 X& K( X! h                .active_low = 0,2 A6 A2 b% X! P' p/ D
                .gpio = DA850_USER_LED1,
: V9 C& @) e; A$ D; r) x                .name = "user_led1",& k6 g7 b! W: M1 l6 L9 {- L, ]+ A
                .default_trigger = "default-on",8 J1 j' y- k# A
        },  Q$ u$ z0 k+ e: B) `, u
        {
0 G& `  i9 ^, @                .active_low = 0,
) |) i# E: p# I0 H- q* B4 d  l                .gpio = DA850_USER_LED2,
4 e, q; X; p$ _& v                .name = "user_led2",6 s# m) ]) J+ _' w, D
                .default_trigger = "default-on",6 m) b- |6 ^: k
        },
* I4 B1 A8 z1 E( {; K        {7 j, ~1 U) w' u8 _! K8 L
                .active_low = 0,
. |3 P, {0 m. B; D& |                .gpio = DA850_USER_LED3,
" A; D4 S- P! f6 ^                .name = "user_led3",- }4 n* R. x$ u& O1 E
                .default_trigger = "default-on",0 d9 B% l: w/ b4 @0 J# o4 r
        },
  A& d7 Y  v1 S4 R* N( L4 p% j# }};
2 E/ t0 i. j  G: p! v& u  p5 \9 q4 T! _+ m
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. W! z- Q: Z( F9 l, x0 F
        .leds = da850_evm_tl_leds,! a+ U4 S4 }. Q" U% x0 X# l+ Q, |3 ^
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 w4 ]2 G! B( a9 T" J
};
( Z/ w: r+ x* \8 u
+ H2 ~% c& ?2 F- R. Ystatic void led_dev_release(struct device *dev). [# Y* E* s( t) ]2 Z1 H
{! N. P, |" X: `$ g. k3 @
};
1 B3 \) Z  [% j* E% m/ H0 I6 N7 G
6 D* Q7 K! j7 T) wstatic struct platform_device da850_evm_tl_leds_device = {
9 k% Q, d3 L, i% {2 B% U        .name                = "leds-gpio",% s6 c5 D$ z" [) D; j. ]
        .id                = 1,8 Q. T6 O( |, n/ {3 {, h
        .dev = {
' l7 h8 E: m" z5 Z8 v2 ~                .platform_data = &da850_evm_tl_leds_pdata,! r9 k% \& t" @0 ^9 x5 ^
                .release = led_dev_release,
, t& s! F0 l) V8 N        }& M5 b5 k* {, ^3 X3 H/ d# V
};
4 _; J9 a9 Z3 |4 m, M. [  v8 |# K' u. h+ `7 ^$ L! _3 K) |) E
static int __init led_platform_init(void)
1 ~. V7 j  @4 S9 a  b( G{" ~& D, q9 x$ O; g
        int ret;$ X) X0 U% t6 e! ?3 F! n  `: m: Q8 X
#if 0
+ v( t( y' p7 a  r0 ]1 x- G( X        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 j; i# C( w/ j8 ^/ S. ]5 T        if (ret)  H& L) V8 ^7 t7 S" q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% ~2 T% v* L: G/ R& |2 O
                                "%d\n", ret);$ o3 g( ?& u( u) _0 R6 D
#endif
) c% r6 H: j9 o: [        ret = platform_device_register(&da850_evm_tl_leds_device);
& }6 Y1 h! {3 U4 }' p( I' E        if (ret): E$ d; |* |; N  `8 I0 b  q6 }7 s
                pr_warning("Could not register som GPIO expander LEDS");9 W1 ^4 Z" A" N/ `" l
        else
- F; Z* L9 Z* X% M$ c                printk(KERN_INFO "LED register sucessful!\n");% e1 ~  }! p( j" T) v7 N

* i) m* ]7 z9 h0 {  C$ R* `        return ret;
5 w) Z$ G7 d7 h  k. G}
+ m6 B& C, J( R9 ]5 X) `9 p5 b# H. f  q7 C$ ~3 [: B
static void __exit led_platform_exit(void)
6 ?- K7 {  X5 c9 J{
! Q$ e* z) y! h9 O! k        platform_device_unregister(&da850_evm_tl_leds_device);
5 \/ v$ y5 n7 B0 N4 f
/ [5 C! }: }* v" l# Z7 m        printk(KERN_INFO "LED unregister!\n");
7 J# P- d$ p6 w; ]}
* g" F9 U, V/ y6 U' a8 D) \& [: h( }8 g% `
module_init(led_platform_init);3 e9 O: d2 u7 p  V
module_exit(led_platform_exit);
  a' |" I1 J; L7 F1 [$ f& X6 k' {3 Z, \9 v: Y
MODULE_DESCRIPTION("Led platform driver");
* ?" N: D" a' Y6 QMODULE_AUTHOR("Tronlong");
  B$ ]2 Y. j; {6 ]( N9 ]MODULE_LICENSE("GPL");- a. v- R9 O8 {
3 ~1 E. A  x, B5 |) ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-11 11:58 , Processed in 0.041856 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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