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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ A& J, P0 D0 ^9 J0 X1 a, b#include <linux/init.h>! t- d6 A$ V4 n) }6 X( h, @, M
#include <linux/module.h>
. G* Q% S% v0 m7 U, i' U5 o' n#include <linux/kernel.h>
) s1 w* Q1 \5 r5 g) r# h/ A#include <linux/types.h>
9 z6 e: h5 K) Q1 K#include <linux/gpio.h>
9 ]; O* o+ b. B5 J) ]1 x7 e#include <linux/leds.h>
3 Z; o0 y+ X# H7 e$ b' ]#include <linux/platform_device.h>1 v1 M' \+ f% r/ P
. k; w6 N1 U7 A4 h7 m. z& l6 O
#include <asm/mach-types.h>4 ?# |% d" Z1 V  S# o3 E( v' e1 h; `( o: I
#include <asm/mach/arch.h>
+ r. ~5 s  x+ E5 v8 p. Y' |#include <mach/da8xx.h>; m( g' m* F: P# v
#include <mach/mux.h>2 }( ~; X; ?6 [$ C7 ~! ?2 d0 `2 a
. \' t/ ]! c3 }  g9 j/ u
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* ~8 U& d0 v( C* c8 y( c
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; V( _7 [' k1 ^! N3 _#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 P. S2 O9 Z) d. o. [8 g
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* g) z, z9 D0 u9 o5 N( v. f/ K6 W- f- w
/* assign the tl som board LED-GPIOs*/: F( {* a- o# o( ~
static const short da850_evm_tl_user_led_pins[] = {
; s2 |$ ~* ?+ ?' Y* {& Y- @        /* These pins are definition at <mach/mux.h> file *// ^% e8 p, l" o( k* N( B1 n( o
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% ]8 D$ ?6 @+ F$ J/ {0 ?
        -16 q* g6 {6 ~- j5 t9 |- }
};9 u# j4 P$ v4 J  W) q2 l, M
% h" u# X3 n( m& A6 W
static struct gpio_led da850_evm_tl_leds[] = {
: A8 D9 J( O6 p+ d$ y, V1 V        {
5 ?8 U$ s! s- F1 H' H$ _                .active_low = 0,
0 U, B, v# G6 Z2 _( R% F                .gpio = DA850_USER_LED0,
9 ^' S( v" P! D# `$ o6 I4 v                .name = "user_led0",3 F! L: Q. J: Y9 ~" m: ?
                .default_trigger = "default-on",
& }* U; Z# V/ a1 i4 Y        },- d( q7 w5 I$ `' H2 I
        {
/ [9 z; g' d( j* k4 G                .active_low = 0,
: r: l- g  ^* P; _$ e+ N                .gpio = DA850_USER_LED1,
! x  M. t7 q/ C4 @; X) \5 L                .name = "user_led1",
3 }: R3 X+ F& R. B" ^8 I/ j* p                .default_trigger = "default-on",* \9 W/ |8 G- C6 F9 X% e! ?# _
        },  |+ R2 D' J8 Y+ Y/ T
        {
# r0 \( V9 p, ?2 q9 N8 B0 a7 F- \' e                .active_low = 0,
! l3 Z7 h& G6 o  l; j- l                .gpio = DA850_USER_LED2,
9 N2 D$ M8 \1 h0 y' ]* h2 A; L/ m                .name = "user_led2",
, m' q% v! ~: G. c% ?                .default_trigger = "default-on",
4 ?6 M! Y5 z4 h: @8 R: J        },% Z/ P9 x/ N( d  ~! {) f8 c
        {
$ K5 |6 q: ]* c* L$ n7 ?1 U. E, p" ?" O                .active_low = 0,4 C% s% C7 g9 _0 q" u3 U
                .gpio = DA850_USER_LED3,
* n* Y* [* [# [                .name = "user_led3",. y1 H# E) L4 X) Q; u% Y
                .default_trigger = "default-on",8 T8 v8 J" U7 {- Q
        },! h% \; W# _0 @3 b
};% ~1 t1 D" h! R+ A- L

: u, n1 w8 ]; G  W& T- Estatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {5 W9 l4 t+ N* G7 f! W4 V
        .leds = da850_evm_tl_leds,+ W& W( x! U7 n6 h+ ~' j$ h1 D
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- d& v  w& @2 R! w
};( E/ y3 t  W/ V. \6 K

  y) J& v0 Y; T" a& zstatic void led_dev_release(struct device *dev)
3 M9 @, ^& ^0 Y! h* D) y! t{
( O6 b& M$ ?2 N};
* e. p# j& L2 _2 a/ i& W6 B( d0 i4 s% J9 @
static struct platform_device da850_evm_tl_leds_device = {
# |3 b5 E( d# S& P( r        .name                = "leds-gpio",2 p* l1 d2 Z. O8 }  b6 H5 i9 P3 x
        .id                = 1,* J5 ^; y4 [) g! m' F3 x
        .dev = {
: {. Y/ K  Q8 R3 G; l% f) D0 S# N                .platform_data = &da850_evm_tl_leds_pdata,# t$ L7 |4 t: r2 K) S
                .release = led_dev_release,: [2 |5 G* V+ b; _; ~& R$ j
        }  F6 f4 J' x9 |
};
1 y$ |2 L( c6 c" j1 H7 y! z' n( r+ S" c. y* Y  d
static int __init led_platform_init(void)
: V) J% k/ t, u+ i. ]{
/ m' q- N7 m; t# T  q8 q/ O# {3 m        int ret;
6 |* V( w2 o- V& X. z5 u; ]& m#if 0
. ]7 Q1 q( m$ @        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* l, K- ^9 ~9 M) B$ p" ]
        if (ret)
$ w% r7 m, U/ j0 q' V) n2 N& |                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' o; t0 @$ n9 p# s# W: V
                                "%d\n", ret);' Q2 h0 F8 G" M# l
#endif& H  _# d8 k' R/ U
        ret = platform_device_register(&da850_evm_tl_leds_device);
& W/ d( p0 K- z( |/ T        if (ret)+ r3 H) j# h4 J8 L' H
                pr_warning("Could not register som GPIO expander LEDS");
. X5 e$ E; O# U7 {        else) j. b; k' ^, N7 Y9 O, J
                printk(KERN_INFO "LED register sucessful!\n");
! \% R# d; N' z4 ?3 x
+ C2 X/ P# _0 R" B        return ret;  U# C5 q# y5 C
}9 u) q  B, @: J" S

: N# s2 }' v7 V3 ^5 v' Dstatic void __exit led_platform_exit(void)
/ I0 p$ [! ~/ t' K{' Y4 i* Q) s3 T! s
        platform_device_unregister(&da850_evm_tl_leds_device);
, q. J- q0 k/ y' L' ~; s; S
7 y. r& T% R/ k( R/ l        printk(KERN_INFO "LED unregister!\n");
3 W8 h0 I/ o" p$ S$ P4 f}
' Y. l0 t4 Y# q, A- t" w
$ @! K& o4 y+ B+ f, `" Mmodule_init(led_platform_init);: l: S& N9 E' V/ ^! o
module_exit(led_platform_exit);2 T2 \# U- q' m; ^9 \6 i

/ h9 S3 M) L6 N7 \; EMODULE_DESCRIPTION("Led platform driver");1 s5 E6 z& q- F
MODULE_AUTHOR("Tronlong");
/ O) U1 [1 n7 g9 ?5 o& t6 rMODULE_LICENSE("GPL");
/ N$ Q( |7 p% |" L' q7 W$ L- G  p  P: X) W# h8 i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-10 15:03 , Processed in 0.039067 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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