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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 _3 t7 J3 v% h+ c& ]+ G8 |. p* l#include <linux/init.h>
3 f' S  H9 y& G#include <linux/module.h>2 X  ?* G8 \9 d  o
#include <linux/kernel.h>* c2 ]9 c) X5 v$ g. [
#include <linux/types.h>+ c& c4 `% O" g' S5 F1 z4 H& k. O5 e+ s
#include <linux/gpio.h>
4 Y8 j1 Q" L; n5 U" l#include <linux/leds.h>! @' C, k; D/ m3 n- p4 B) ~" L& u
#include <linux/platform_device.h>
! l" S& c1 K. A! e6 @* q* {1 P, d
#include <asm/mach-types.h>  S: s6 `) F. S* m4 M4 `
#include <asm/mach/arch.h>+ K* N7 o  @; g" }  [( B
#include <mach/da8xx.h>
1 H8 k9 \# v: l7 G; Z" `#include <mach/mux.h>' B" j! t- u* S5 H0 E3 l. N& f

' S  O, i4 k+ e: N# Y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 o' p+ B- y( j2 w6 J
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 w, E2 M! E/ G1 [/ s( P' J#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 v$ `) C2 t7 c8 T% T5 E, J( B* }
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# F) A' Z; s8 @- G4 Q
+ g* C* ^' v6 m: v8 r/ M/* assign the tl som board LED-GPIOs*/$ d3 ~1 m' l8 v
static const short da850_evm_tl_user_led_pins[] = {
4 R) B  ?+ [0 P3 k        /* These pins are definition at <mach/mux.h> file */0 S1 @6 k4 x0 t! ]6 P% [4 ?! O
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 `% A- V3 I7 |% p! z+ G, r! |1 L
        -1  w% i, w9 Y$ d7 g( }
};: M% i/ n0 D8 G$ {  K9 U, O
5 V. t: W3 `: L+ h; Q9 q" h1 E
static struct gpio_led da850_evm_tl_leds[] = {4 t5 V3 O# ?! N. {$ _
        {4 b6 [; u% O& o, H
                .active_low = 0,
8 M" m8 f+ g* Q1 |5 d9 _                .gpio = DA850_USER_LED0,
" j8 O' @# V6 S6 N                .name = "user_led0",; }  d1 K/ B1 E. W3 u
                .default_trigger = "default-on",% J: ]. s: v8 v! c8 L) o7 S
        },
3 `9 f/ G+ ?- A5 u. y3 u; S        {- b4 p+ K7 Y7 `: _1 o
                .active_low = 0,
" r* j- [$ o4 y5 s% t- O2 v                .gpio = DA850_USER_LED1,# _+ }4 H' |7 |9 Y9 N& J0 n
                .name = "user_led1"," \2 _! u6 H. s3 E  C6 n2 f9 X$ s
                .default_trigger = "default-on",
' h7 \8 Q' p! ~4 Q' s; _+ _        },
9 k" q, J) T8 f4 E) U+ K/ t        {
7 x$ U6 w% x1 Y8 p, ]                .active_low = 0,: s8 q) @& q" i3 H0 _
                .gpio = DA850_USER_LED2," n9 Y  K" K6 G) c
                .name = "user_led2",
8 E1 J# `- u6 o4 V7 W% m                .default_trigger = "default-on",4 L# x+ j9 i! T# I- Z5 Z( }- Q
        },
8 k: y( a1 k, @, n/ m7 y        {: w! }% j2 p  k2 L: D7 W
                .active_low = 0," h& d# U3 w( v9 o9 O
                .gpio = DA850_USER_LED3,$ k3 @7 D( r3 `8 |& |$ a' A
                .name = "user_led3",( X1 |0 ^0 F& G; q3 D- q* K7 W
                .default_trigger = "default-on",
# H# q+ W  w, T5 B; v& `        },' K* v. w  p3 f6 W. U
};# p* @( l2 H& p% y. U% T+ N' ?& r

% t+ C9 H1 Q# t- Bstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 J# ?! Q8 k4 ]0 C4 p$ e
        .leds = da850_evm_tl_leds,
7 X8 t7 U8 N" P9 K2 E5 u* Y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ b. I" h% E% C: W
};
3 S. q' c$ y2 l% N
7 d7 P: i; Q/ v# _/ u4 cstatic void led_dev_release(struct device *dev)6 q& i- r5 e* r
{! E& f; {( o5 Q1 N! k
};
) g( b5 F* S9 |+ E
# q! E: b$ U7 H: x. |- Wstatic struct platform_device da850_evm_tl_leds_device = {
7 B& o% f* z( z0 X9 [        .name                = "leds-gpio",$ g4 M3 T0 n  A0 E  h( T
        .id                = 1,4 |1 P- s, @! u# h$ u7 {5 l
        .dev = {
& Y) q* U- K3 z. @* Y8 z- y0 O                .platform_data = &da850_evm_tl_leds_pdata,2 @: a& g  n& ^+ r. h% I' q
                .release = led_dev_release,
* O2 |& q5 u: [2 \6 x        }
$ R- A3 b$ T0 w( N) z- U0 k) `, d# ^8 K};
3 r5 b8 u5 U4 ~: }$ y' h
9 j# E' p5 S' U$ k- b8 X# @$ H2 @static int __init led_platform_init(void)9 w% ^5 o  \0 H: |4 Z+ d
{
3 I  v& [0 \" ^; U) M6 U        int ret;; o7 L. G- \) S
#if 0" M" `( d) C( b* c# @. ^6 q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& i- [1 B$ H1 C- G, q* P        if (ret)
3 I6 |; |( H$ f6 G) q% L                pr_warning("da850_evm_tl_leds_init : User LED mux failed :", y( t* H( \) X* @
                                "%d\n", ret);9 R! b2 J* F" x8 W0 I+ o
#endif6 [" x2 x2 O. i! d$ e5 z# z" z
        ret = platform_device_register(&da850_evm_tl_leds_device);6 X1 o9 l& m% h
        if (ret)
; n9 S  V& ~* f0 [, v                pr_warning("Could not register som GPIO expander LEDS");
2 [& b8 J9 R0 ^& a8 E/ e/ A        else2 N( }6 R$ W( X/ A
                printk(KERN_INFO "LED register sucessful!\n");
" K1 R% G; N8 S8 M5 U# |6 T8 W5 _& P; S: |) O1 e' N. G# i
        return ret;
' m- F2 m% b+ z6 ]}
1 T. Z9 m/ r5 ?/ s/ @% [% F$ l% i
" Z9 ~, w% E' H  v2 s+ J7 @static void __exit led_platform_exit(void)' m/ s" Z. |7 ~/ Q) ?& g: X
{
7 {+ N' r5 W8 \+ X/ R4 q        platform_device_unregister(&da850_evm_tl_leds_device);3 C% s/ m$ |0 B- P: S( Z; [/ v

, \# c8 j+ D/ z9 Q$ }! C        printk(KERN_INFO "LED unregister!\n");
2 D% D: J  I( P' ?( }# ?/ u) }+ _- E( _}
" f6 Y7 r. j, k) w# k1 b( U: I/ ?# W1 B! g
module_init(led_platform_init);: ]. K8 t3 d3 t2 h  M; H0 r- V
module_exit(led_platform_exit);- k. ~5 J- ?3 y( x7 E1 v

1 R0 F/ a5 S+ T7 DMODULE_DESCRIPTION("Led platform driver");+ o3 |. s) ?% |7 L2 o: u( [
MODULE_AUTHOR("Tronlong");# O1 v6 |" C' F  O: S
MODULE_LICENSE("GPL");
: m% P& v0 j8 b6 t& N2 f! @! G7 f/ I$ m3 K& b2 n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-6 22:00 , Processed in 0.040399 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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