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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# H) D! |% x2 U' E5 f#include <linux/init.h>
. k8 E& q6 f" A* c# ]8 q# ?5 W#include <linux/module.h>* j; }# S) E- e% r6 w+ S3 Z4 m
#include <linux/kernel.h>8 W$ Z" P+ f/ V' S1 K& Z
#include <linux/types.h>: R% K) |3 B6 X/ p5 `
#include <linux/gpio.h>$ [" U: F% d' U# @6 z) l+ h+ f) v: x
#include <linux/leds.h>
; W) n4 l) T& F2 E6 H/ s#include <linux/platform_device.h>
' Z" @1 i9 Y( G0 }8 Y7 G# Y* {7 W) G& F4 u
#include <asm/mach-types.h>
/ \% s, l( N" E#include <asm/mach/arch.h>8 u, }0 Q- j# e2 B" F6 @$ z' c  w( q
#include <mach/da8xx.h>% u  ^8 H. w  V" o& i5 K/ k9 G
#include <mach/mux.h>
$ G$ ?8 Q) s8 |# p" u' d7 c3 f/ G# L# P
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). S2 }' z& K* U
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 p0 H' ]% ]. l8 n2 k8 H4 }/ N
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# _' k. M1 T' s% g: O#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) x+ j% Y& `0 i" L  j4 w* [/ o2 y
! \/ C% X# M$ N6 N/* assign the tl som board LED-GPIOs*/
3 h6 M, Z9 @7 q. Estatic const short da850_evm_tl_user_led_pins[] = {3 B$ ]4 H* ]# G. u# x1 [3 L
        /* These pins are definition at <mach/mux.h> file */
/ v% t, ?$ F1 n6 T9 i0 ^* y5 Z% i1 o        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  i9 z2 i! F0 d7 P( ]) A        -1) J% x, h6 f9 F* g
};
& F" [5 M4 Z4 z
1 s$ y9 J, b! I; m+ xstatic struct gpio_led da850_evm_tl_leds[] = {4 |; F9 e' ~% h2 [6 ?
        {
& o. _! c8 g5 Y; {! i                .active_low = 0,7 R, N+ h9 X# U: j  ^+ Q4 _- q
                .gpio = DA850_USER_LED0,
! M# S" F; `  M( F% {                .name = "user_led0",
& N9 Q# u. B4 ^                .default_trigger = "default-on",
! u! q& G8 I# A' T6 L1 F! e2 b! w        },: A  K; @$ `; }
        {3 K% U" H) g" z; `& e* Y7 z8 K
                .active_low = 0,
, n' g+ `$ l& e" k/ l# E                .gpio = DA850_USER_LED1," d& h  y4 d8 V0 m- x6 q& k  ?6 e
                .name = "user_led1",8 M( R, @$ c/ F) r& ?% n: [
                .default_trigger = "default-on",
6 t8 A" h/ x/ g        },+ E. ]7 T( B3 \3 P
        {7 Q# C( l+ B. X# Y# y
                .active_low = 0,: F& ^# ~" @. n# d( a
                .gpio = DA850_USER_LED2,% s8 [* q1 M* h9 K) {4 o
                .name = "user_led2",
2 X8 G8 E& m; N% N' t                .default_trigger = "default-on",$ O- B$ t# U8 E7 w
        },
$ s/ f) M0 V0 m4 U: z        {! F1 r$ Q4 |0 a1 u. F7 Z
                .active_low = 0,6 m0 L3 J5 N' f. [
                .gpio = DA850_USER_LED3,3 [9 ?1 c7 M- Y& d. g
                .name = "user_led3",
: p2 j9 U& N& `. S  U# g                .default_trigger = "default-on",
& I8 I" e6 a$ y) P$ u* k* E        },
6 h$ o. x8 n2 r5 m# ~- Y};4 ]6 I' C; S$ }! P8 w5 D
4 O' b3 J- Q1 R" @) l
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' o9 K5 j  S* O
        .leds = da850_evm_tl_leds,6 O$ w; H  r( I% r( C
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 a" t! z: ^" T% v0 P3 C5 E
};
. [% t% ]0 M+ f
2 K; p' N+ e. S1 d+ w  Wstatic void led_dev_release(struct device *dev)
. r# D3 Y$ u) L. S{
2 I8 k8 l! X1 {1 C. \; V};
# [4 f  j' ]1 H, o0 g
0 |+ w; Y# A3 V1 j! |0 ~1 b! \# I' Qstatic struct platform_device da850_evm_tl_leds_device = {
2 Z. P# p0 Z0 c: \# a' W( B  V2 \        .name                = "leds-gpio",1 P# J& C- U- I
        .id                = 1,
2 [; L' v8 v( A        .dev = {  R1 s" W! E- d6 Y
                .platform_data = &da850_evm_tl_leds_pdata,$ }. o- _" q7 _: f( k
                .release = led_dev_release,& z8 `& K$ i& ]/ F. ^
        }
* o5 ?! C3 j+ s5 O};
5 l5 m: m, w. k* Y! y, w
; o2 X3 r$ P! R5 ?2 U; u, Kstatic int __init led_platform_init(void)
7 y- W: [, e1 D{
1 X$ q# N; S4 y        int ret;
* u6 K' t( k  X1 [1 w0 V1 ~#if 00 t0 G  J3 {% [+ T! @5 _1 c# m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  Y/ |) @! Y4 t- O
        if (ret)- q$ U4 y4 E6 E! S/ y9 X
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
( \% @1 h6 Z' `# H8 [9 ]) M                                "%d\n", ret);& }* k+ C- t' l# d+ B  h# m" f4 y
#endif
6 Z# R' x4 g8 F* i  z2 C        ret = platform_device_register(&da850_evm_tl_leds_device);) Q. m) F( S( s% K' R8 s2 |0 N
        if (ret)! O# y. p6 V% h$ A" k, U( [% Z
                pr_warning("Could not register som GPIO expander LEDS");
" D$ D6 N8 S  q& h7 G& N        else
8 |9 Q  v3 s- Z* C% X                printk(KERN_INFO "LED register sucessful!\n");. c' W. [: d- J1 i: x/ ^( f
$ q/ D+ H6 u' H
        return ret;
0 `# G7 _# ~! U' @}
3 T1 a* i2 W- t' Q3 j: O9 E" r4 K- J! z. a: A
static void __exit led_platform_exit(void)
1 P, d+ ]3 M, g" s+ h7 }2 t9 ^{  o4 P: i! S" \/ I
        platform_device_unregister(&da850_evm_tl_leds_device);# q8 C, L9 q. J0 y

7 A2 w5 q. A8 ^8 H        printk(KERN_INFO "LED unregister!\n");
6 l- _: a  A3 |* l& `* A$ Z}) ^5 ^7 s' B* {: Q0 E
6 L8 Q  u0 l- F" w( N( q" r
module_init(led_platform_init);  s1 i/ [4 J  @$ t+ C, B' v
module_exit(led_platform_exit);1 T- Y. v# ?- _3 u; r4 F) I5 g0 ~' z

3 W+ O; I* t9 K) s6 J0 a$ s$ gMODULE_DESCRIPTION("Led platform driver");& s! ]4 U1 P9 v- D9 {
MODULE_AUTHOR("Tronlong");8 f& ?- V1 v$ s# G- i$ Z
MODULE_LICENSE("GPL");
* i5 {& C& P' q+ i+ ~4 }' ]+ t3 [0 E0 m! T' ]: _* ~; m1 f+ M& J5 g: d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-22 06:33 , Processed in 0.038610 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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