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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
  t% w  c; K  _/ e; w+ \& a#include <linux/init.h>
' |+ o/ z" Q5 I5 u+ h' J#include <linux/module.h>3 a; h0 X: M+ O0 Y
#include <linux/kernel.h>+ G& a7 w- T( B2 o* u- C6 C
#include <linux/types.h>: H& X5 q, F; E  ?/ c* R5 d% b5 q
#include <linux/gpio.h>
7 j; J4 x2 M4 D3 A9 h2 l#include <linux/leds.h>
/ r7 A7 |8 c/ x( Z# T#include <linux/platform_device.h>. t: [' @% k2 f7 n$ D+ }

; M; I! ~  B( O' v7 D#include <asm/mach-types.h>
1 t$ S. i( X: ?- y3 r$ G0 `! p#include <asm/mach/arch.h>8 b  Q6 `5 Y" D4 q& o* A
#include <mach/da8xx.h>
0 w2 K# g4 |: N" k( A& M#include <mach/mux.h>* C, F/ H" v4 O3 v- ^' R% u

1 H8 s% w( e( W) z- f3 j#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% v! n8 H* R- G4 {#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 C  N( P8 L0 I' m  K4 a#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 C* s! \! i. R  g4 H% O  z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)8 k, o. g& q! ~) F& H

1 U7 q$ P7 j% Q, N# j4 b* d; W9 X. g/* assign the tl som board LED-GPIOs*/
* s+ @$ o" S* ~/ X3 N2 U# Q' Pstatic const short da850_evm_tl_user_led_pins[] = {8 s) M8 i7 d0 m3 i: _
        /* These pins are definition at <mach/mux.h> file */
- q# n/ B! o. N) C: b        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 u" q$ V: D6 L0 w7 T7 L$ i        -15 D  N- k- S: ?
};& ^6 m( E/ H, G$ _! M
  n8 G6 S% O2 t( }
static struct gpio_led da850_evm_tl_leds[] = {$ t3 N; V  S* y2 Q8 P! S, g
        {
' n5 p+ s# I& ~" M+ F' F* q0 P/ _                .active_low = 0,* E2 \/ ]8 }" c
                .gpio = DA850_USER_LED0,; y5 H# D+ X6 @& b0 Z$ p: e3 T: M+ k
                .name = "user_led0",% n8 @- W/ S* G8 ]) H5 H4 L
                .default_trigger = "default-on",( A0 o0 e. ?) _. j
        },* ~" V5 ?: X$ P& E1 g( W- h/ f4 V
        {' ~* A% }1 V' F5 O
                .active_low = 0,
! C6 y" p9 w+ u0 F1 j. Q                .gpio = DA850_USER_LED1,- v0 g5 I  b4 E9 a1 ^
                .name = "user_led1",/ A5 Y1 u) f( y) }* g: J
                .default_trigger = "default-on",' H$ w+ P' w9 R
        },( z. P& x4 A/ R! [# Z- N" m
        {
* u1 R6 b3 g0 j8 i; u1 w' \- [                .active_low = 0,
/ M% F: B  i# p2 o; D, S                .gpio = DA850_USER_LED2,
% A1 g/ J: `" ]% H* L7 L  ^$ R                .name = "user_led2",* O& Y& j+ ]  v  J8 z% Q% M
                .default_trigger = "default-on",
2 s/ g6 p3 e3 B# \" o% ?6 I+ g7 c        },
, c) D$ T  {& e4 k        {5 Y2 d9 _) ^# j  P" i7 T. H' F
                .active_low = 0,
8 t4 P9 B2 j% @4 x- ]& K                .gpio = DA850_USER_LED3,9 q# c& T/ k4 O
                .name = "user_led3",
  U+ C. b$ t: p1 u& |1 j                .default_trigger = "default-on",
( ?8 r, ]3 f8 O8 [0 M: O' ]        },
) I4 m8 E: Q* q9 U" b% }};
2 S5 M0 Q/ ]0 V( d
3 W  C& c0 f% B" n* ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 S, P9 ~  i2 i5 t& g
        .leds = da850_evm_tl_leds,' |- P3 U' X" W. Y/ p- ^& c
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 m& @  E2 @. s};2 c3 G. G0 X% O3 h. w
0 B3 _' h& l3 z. X; o& C
static void led_dev_release(struct device *dev)
) J3 j; Z- y: d  r9 C* A{" r: c) x. d8 H1 q" c
};
! V2 B5 U! U+ {% l& a9 B/ \( p
  W* h- T" F; a: ^7 G, \static struct platform_device da850_evm_tl_leds_device = {3 K8 u! [/ j3 Z& j$ Z# ^
        .name                = "leds-gpio",
# [6 n& k/ d7 Y/ w        .id                = 1,
6 \* a# ^9 K1 _4 Q+ ^* [: n        .dev = {" Y, I: Y) t* J8 R0 W
                .platform_data = &da850_evm_tl_leds_pdata,' r* n6 {7 V0 Z) ~
                .release = led_dev_release,
8 g& j0 d) U) V: F+ Y% H8 h5 I        }, G) z6 d# I! E. C4 H( l8 v
};
% u/ h( S' o) @$ ^2 B4 s7 q
7 Y4 B+ T+ z! I1 S% @$ Zstatic int __init led_platform_init(void)* C( l) k' G) k4 G
{
, i+ S' M2 h5 ?* T        int ret;
$ i! T' N) l: T/ L/ N4 x1 P* W#if 0
8 _+ V8 U" N! ?        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* I+ U2 _/ @9 |' Y6 N        if (ret)- n; {7 _, J% C3 [
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 G& ?- I% _- A" ]& K                                "%d\n", ret);
" C7 x) }; i2 @+ l- r: M#endif
( ]6 W/ S7 [6 r& x, S        ret = platform_device_register(&da850_evm_tl_leds_device);5 c. e8 @- N  e
        if (ret)2 W0 x" l/ F! `$ e
                pr_warning("Could not register som GPIO expander LEDS");
/ t( @0 o' D" Y        else( }6 V1 H/ M4 |+ y3 M* T! e
                printk(KERN_INFO "LED register sucessful!\n");
" @. d/ B$ _2 _0 ^1 p7 ^2 \# K) j
& y9 f5 b( {: n: l& q; @/ c        return ret;
* ?9 b+ T5 Z, J8 T. ]1 N}
. e+ D8 @' s$ d! u4 V( j! u% m6 j7 Y% z$ {" @) q5 i# [) x
static void __exit led_platform_exit(void)0 v' \. _( y+ x+ R' _3 G# V4 h
{8 N" y9 A1 \: A- h
        platform_device_unregister(&da850_evm_tl_leds_device);2 k2 ~8 u6 U* e4 p  `' {

) y- p- f$ l8 B7 }        printk(KERN_INFO "LED unregister!\n");
; `3 Q7 H1 b% k* @" M  _}7 \' W3 ~+ P1 ]# @: }6 v, T2 V

& [4 n+ C9 m/ P2 p: {module_init(led_platform_init);6 z) g& Y& Y& _1 i$ p/ A
module_exit(led_platform_exit);
. c+ s; Y4 I' |$ B. h% m  C8 z# N: j4 B: B) D; V
MODULE_DESCRIPTION("Led platform driver");; M' ]7 y0 A$ k
MODULE_AUTHOR("Tronlong");
8 q% e3 s3 u+ t, j/ BMODULE_LICENSE("GPL");
5 T' [2 J7 _8 g8 D: {+ G9 X
7 B" S2 r) k9 J8 Y# _% F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-23 12:32 , Processed in 0.039129 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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