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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 a5 ^# s, o: ]* q7 E* j#include <linux/init.h>: h: `. p+ R* t, e/ Y
#include <linux/module.h>" s2 y4 h0 S! c
#include <linux/kernel.h>
5 w4 ], Y& ?4 w0 G% Z3 ^#include <linux/types.h>
( u# Q: m4 S/ Q' l#include <linux/gpio.h>! a2 z7 \" o, i2 S6 i; g5 f
#include <linux/leds.h>7 S, p, k3 @! Q  m- r) i' m6 T$ L
#include <linux/platform_device.h>8 O1 N: d8 p% U/ L) ?  E) g: H
: H9 i0 c1 c: e( k4 S& Q% v7 P
#include <asm/mach-types.h>, g) Z# K# u8 M5 c
#include <asm/mach/arch.h>
% Z( x; H2 t) s% t( b#include <mach/da8xx.h>% d, H) l" M$ U- j
#include <mach/mux.h>0 d, [. h6 C# b/ D2 o" `
  x& G5 E: @5 ~- T" X
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 H. c' W! p- O: L" x; S#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 P: O" t$ z+ U' S) W. w#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' Z. \% j3 }+ I* c- z, y* k! K#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ w+ ?$ |1 `8 R
6 P& c9 b$ [$ r/* assign the tl som board LED-GPIOs*/
  f: n! Q1 y$ C( Xstatic const short da850_evm_tl_user_led_pins[] = {
' j! s2 q+ r2 O9 t; \; K9 ]        /* These pins are definition at <mach/mux.h> file */
  D* I$ ^- U- n) s  Q) |6 u/ n/ ]! q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ C$ `9 N5 S* |% q: W) K
        -1
$ E: p$ v# s7 @};
1 |: e! Z5 E6 {8 s5 _( D! J. b( j, L& R& u6 y2 }: P
static struct gpio_led da850_evm_tl_leds[] = {
( \: `( [6 @# h0 B1 f        {  k: D# |1 W! M# m" c
                .active_low = 0,
' p1 U7 C3 R4 t" d. a& j3 J                .gpio = DA850_USER_LED0,+ `6 c2 i1 y# R" v) G2 D. D
                .name = "user_led0",
1 q0 ^1 l" B4 T0 i4 H                .default_trigger = "default-on",7 ?  E5 @3 R% B/ ?' @5 Q& o& W
        },
7 ?9 D+ ]2 }" e% A        {
6 C7 {0 l! U3 ?                .active_low = 0,
3 B# F0 d: t% w/ U7 L                .gpio = DA850_USER_LED1,6 r5 i. F% o4 N8 Q7 x
                .name = "user_led1",
( D' [. g& f& m. D' v                .default_trigger = "default-on",% u! {% W. R* F5 d5 C1 f
        },
9 q% {" N( j8 q4 _: q! C7 f        {6 K2 u0 s5 y  j' A
                .active_low = 0,: J0 H, t& X2 i0 X
                .gpio = DA850_USER_LED2,
' S4 ]& V8 W. p/ Y- G1 Y7 v3 V                .name = "user_led2",1 l6 w1 P. H' x# j' N
                .default_trigger = "default-on",/ F% @1 G3 w4 p/ y0 D4 I- o' c
        },4 r# t7 p5 E: H2 s& p! w" d5 u
        {
* l% r) Y& V% q; o8 A( F                .active_low = 0,
5 b8 `5 q3 L4 M9 Q) K                .gpio = DA850_USER_LED3,
9 G. N! x2 C" s6 e: q" S( w+ c! I' y                .name = "user_led3",
7 l$ `) _3 c  B3 E                .default_trigger = "default-on",! D, }1 F, w/ [* q0 }$ T
        },6 J$ y( [; C  d; {
};3 [/ v2 r" F3 z2 q  }5 m+ Q9 |; w

+ r8 z. H6 p9 v: Hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 U6 y, }! r0 C+ U3 o! v        .leds = da850_evm_tl_leds,
6 ^" o& G. q, P- f0 k        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 }# L8 Y9 B2 e};7 z) m- }) I6 t

) a& \: K" M# [, B& y0 q6 i+ o% z2 s: {static void led_dev_release(struct device *dev)
: ~7 d# ]1 w: C8 ^{; G* i, Q! O/ h" w
};
4 O0 h3 D- U& ^7 v8 m5 `& A9 L4 y+ k; D" ~  A. F
static struct platform_device da850_evm_tl_leds_device = {
1 q# h# Y/ }8 ~5 I, h4 l  F        .name                = "leds-gpio",/ U+ `: w# h7 q. J/ Y
        .id                = 1,
# i6 ]9 d+ z) G1 e        .dev = {
  \( W; y& L3 |; E: a8 T, c                .platform_data = &da850_evm_tl_leds_pdata,; V* m1 T; V) L
                .release = led_dev_release,
( B( |" ~, H) m! ]% K! _        }
* r, C& T! j3 g, F" o$ B  c% F& A};- b& g% B! |% E# k
! j" P. v5 I9 v, f( G) Z/ h
static int __init led_platform_init(void)) n: I( w5 f. l, a# j
{
7 P8 ~8 u0 ~4 Y9 O        int ret;/ M' q" `' Z) ?! O& g8 Q
#if 0
& c) |( z! {3 k( x8 O4 K' ^) u  T# c  K        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, Z+ B* L+ A* S0 y4 L8 M1 [        if (ret)
4 ]' m: d* S% `; v0 U+ \                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 d. J$ J7 n2 U4 Z                                "%d\n", ret);0 G6 l- w' I* H; h( p- F* E/ ~1 x6 J
#endif: O" w! [$ Q) J4 N& K
        ret = platform_device_register(&da850_evm_tl_leds_device);) Y! ~9 C# H3 M4 y5 U* D
        if (ret)
8 L. {$ a( Z( S3 O1 ^* T  T; K                pr_warning("Could not register som GPIO expander LEDS");
6 n9 G+ D  r- T& |" U5 a        else
# S1 o. A) r9 T3 D1 l- u                printk(KERN_INFO "LED register sucessful!\n");
* x& T6 `3 p1 q% q4 D' \5 ~
/ Q' o/ W4 |2 e        return ret;$ }* Q1 y! Q" h7 [
}: y$ Z/ v) x6 V8 B& Z; A

* H8 R1 {6 Y) l9 ]2 xstatic void __exit led_platform_exit(void)
- X, `5 e3 C% R, T{
2 y" W/ s3 O9 J. w, b, ]        platform_device_unregister(&da850_evm_tl_leds_device);
& d1 k1 q' A; C8 V5 _0 r& A0 ~  I+ j) s4 Z. n& S1 \( ~/ j
        printk(KERN_INFO "LED unregister!\n");
2 t6 [6 c( ~8 g" f- |6 |}4 Y- b1 t0 H5 N; L  ^+ @1 T' G

9 M, w" C, M; X$ lmodule_init(led_platform_init);
* U; R) b+ q/ i  K% q* o, @* Emodule_exit(led_platform_exit);
5 c$ h9 G' S. y' ~- }& Y1 x6 X% u7 `4 Z- h- b7 [& W
MODULE_DESCRIPTION("Led platform driver");3 d# D0 ]: M  A8 ^# @6 A1 C
MODULE_AUTHOR("Tronlong");
* t- M6 B* V, V! \8 VMODULE_LICENSE("GPL");
& v- P5 k$ s: F) O& |/ \4 |; b2 E
4 {7 K2 y1 z: B+ t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-20 02:03 , Processed in 0.042771 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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