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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ U1 y6 U* \( Q#include <linux/init.h>. x  U9 \9 u- P( n; c. L+ [7 d
#include <linux/module.h>& D& j% V3 i( m. q
#include <linux/kernel.h>$ H. U! C5 }0 u# D$ u3 r
#include <linux/types.h>$ @- _2 i3 u3 V7 B3 s; a2 T9 t8 h" G
#include <linux/gpio.h>
/ I# x2 [$ k+ Z" R#include <linux/leds.h>) s3 H; z8 x% w, ^
#include <linux/platform_device.h>
( j' \3 u- k* l6 ~' G1 P" J4 M+ z7 o8 k) V0 g, D
#include <asm/mach-types.h>
% E5 C+ Q/ O' P/ @$ P#include <asm/mach/arch.h>( p# K% k/ J2 r1 Y
#include <mach/da8xx.h>
3 ~& H* X* N! t#include <mach/mux.h>8 _2 v( k/ C2 E+ Y- j' v

( k: `# _+ }9 v  e  ^#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ I" m# F8 o# h
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 L" u; w4 n8 `* _/ A+ E' b, F
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 P% W' F; L0 j; F9 L#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ E4 z9 T. n! }' }
, x, }' J) ~$ [' P" M% T
/* assign the tl som board LED-GPIOs*/
2 z/ {" H- E" a5 wstatic const short da850_evm_tl_user_led_pins[] = {
, i' s1 `+ P) e! X( d        /* These pins are definition at <mach/mux.h> file */
; S- {8 i; B+ |        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 J2 E/ F2 g* \
        -1
7 M- A3 \. T& P( l6 e  e2 Y! B};/ J7 z% e) A9 [

2 w& _" }/ L5 istatic struct gpio_led da850_evm_tl_leds[] = {! f$ y* e+ u6 v; [/ j) A
        {2 |% m/ z  i1 T' o' y! y' ^  `
                .active_low = 0,
  p- t/ u' e( j3 ]: U                .gpio = DA850_USER_LED0,4 p3 m) i& z4 J9 D" f
                .name = "user_led0",
& H- K& T% o7 d( C! \                .default_trigger = "default-on",# X. r# M* [& m1 f7 [) ^1 f: [
        },4 f1 ^9 i2 s# I; Y0 e+ S
        {) x. ?! I: W8 u* ?' e
                .active_low = 0,# n. f0 }9 X/ s0 {0 v* h
                .gpio = DA850_USER_LED1,, }  D. z# X  X6 d
                .name = "user_led1",9 t$ Y# I9 ]2 x: J
                .default_trigger = "default-on",3 I3 `( f9 E( U: q
        },
+ S" Q3 Y; v. X0 c: e9 g        {
2 ]9 h! `! ~1 K* {) K. w; b' l                .active_low = 0,- \$ D- b8 |, u0 q1 t, E5 u
                .gpio = DA850_USER_LED2,6 L& l5 n& ^4 E  @
                .name = "user_led2",& L( {( K' u7 @! I0 K4 ?
                .default_trigger = "default-on",4 J: w! E  N+ @
        },
. O- O/ V2 Y) I- P, I$ g        {, O# g( y* `0 H6 v5 U8 x8 M; c
                .active_low = 0,0 n# W) S- t- A! c1 K) r4 W
                .gpio = DA850_USER_LED3,
- M0 H) H, `# w) D                .name = "user_led3",1 N, `  V; I. O" J8 g
                .default_trigger = "default-on",
+ ?$ T: Q. b* [1 J! N+ b        },
3 U. `# ^0 Z8 h};$ m: c9 V, q2 |$ C
: s0 G0 _9 N# o- b( q/ f1 }
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 A) D% F/ j& c% }& u        .leds = da850_evm_tl_leds,$ @% l! M" v' A5 e/ c
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& s4 ]6 B2 D" \# i" `4 C4 p
};7 G) V% M3 e( G: Z6 P

+ h2 D) T+ J: f" r8 O8 z) T4 h6 pstatic void led_dev_release(struct device *dev)& V1 ?, F* Y; e3 u" p- k
{3 s2 {" s5 P! h& R  G) K4 k
};: c9 e7 H/ d/ A- ]; l& L

% a2 Q0 s) Z6 P1 K( rstatic struct platform_device da850_evm_tl_leds_device = {
9 g3 l! r' J1 \+ |+ ~& W: y: g; j" @        .name                = "leds-gpio",
. O) \$ _& L1 U9 f+ h- R  i        .id                = 1,+ v+ }8 S1 u) A% G) ~! Y4 d9 S1 n
        .dev = {3 E, U( X9 F" u7 j
                .platform_data = &da850_evm_tl_leds_pdata,
2 Y/ |* ^/ m" ~; o% v/ a  b                .release = led_dev_release,
. _% Z) g2 C" V& X        }( Z! X* \6 y8 v! Z- r
};+ z5 C9 V! T1 C* e% b- q
+ p! m  t! w  |+ s( B
static int __init led_platform_init(void)
. ]" c8 E4 _9 }& [# [" q{
8 H5 r+ X) A! B: O+ I6 \        int ret;
  [. U; {* Z) a$ a5 }7 B4 Q#if 0
0 ]+ y1 G7 ~$ V* t        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- Q- J5 O' E9 X) `/ j        if (ret)
; W% L' h% ?! D/ c5 L4 v                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 a1 S9 z4 B7 r6 |' d  z                                "%d\n", ret);
4 L5 Y3 v6 M9 a0 O0 T#endif7 W' B7 E- ^/ B4 I9 }8 ]
        ret = platform_device_register(&da850_evm_tl_leds_device);$ G  y! ?% z6 A4 C# @+ V2 z& `( n
        if (ret)' u  S8 M3 l! w9 `9 r. A+ ?
                pr_warning("Could not register som GPIO expander LEDS");3 u5 }. x9 c* K2 p7 }
        else8 k- L# X( }" ]- {2 v: N: a
                printk(KERN_INFO "LED register sucessful!\n");
- U# T: _6 t4 G0 \: u9 G- t, x
* b3 ^% a3 ^2 X: S8 ~6 `        return ret;
5 w5 C! ?6 w( b9 p1 m& n& i}
% K. I% e  h0 {; s) s8 a0 E+ F0 u- T! o2 c, F# L
static void __exit led_platform_exit(void), D. x) {. \- V) ?7 P
{
2 @; R! K3 g( E, J3 F        platform_device_unregister(&da850_evm_tl_leds_device);" M- ?" ]( T/ g' J& m) I( a% |

4 v8 X& r% W4 F4 g& P- M        printk(KERN_INFO "LED unregister!\n");5 S% l% b% |' ~' f/ j, O
}" v* Y( J) E4 z! j4 ?2 Y
- ?4 X6 L7 N' P
module_init(led_platform_init);: Q+ N5 B8 X+ f' _
module_exit(led_platform_exit);
4 @$ d; w- L& c% D
: n* d6 r) ?6 j; U3 L  i) {; rMODULE_DESCRIPTION("Led platform driver");
3 e3 j7 V/ l: b: F) g# JMODULE_AUTHOR("Tronlong");
6 r' E' J: E1 O  |  T6 ^7 k3 [* P& G$ a! fMODULE_LICENSE("GPL");
. Y. r* l' C0 P
  w2 Q3 R3 e0 H4 Z/ ?+ c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-17 02:34 , Processed in 0.037800 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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