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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 @# e, M0 L- F) B% o#include <linux/init.h>
: z, f; V! m4 [. W0 D3 n6 s- p1 P#include <linux/module.h>
$ f& L$ U+ E+ k* r2 E* O# C3 ~#include <linux/kernel.h>9 e; x. S3 @3 I6 R, l: I' x
#include <linux/types.h>
3 {# Z; N; }7 s6 A/ u5 u% W7 e1 b# P#include <linux/gpio.h>
$ E9 S/ Z; F9 y+ ]( K4 F8 e#include <linux/leds.h>
/ |# g9 c1 H; W. _  y( ?#include <linux/platform_device.h>% S' o4 x. O( l0 i+ C* J0 Z6 t
" i8 V: o# P4 l( M
#include <asm/mach-types.h>
3 b' J7 [. t+ `2 r9 Y5 `9 o, V#include <asm/mach/arch.h>* z) ^) U# Q3 n, Z& k
#include <mach/da8xx.h>
6 g. b$ h2 h" a. ?! V0 i#include <mach/mux.h>
" G6 f; j- C- w0 K4 _+ y' m0 \6 E2 ^& {2 U$ c3 f3 H, _! U
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- ^- i& ]: ]; ?! z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, s4 S0 Q% N, d# B#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
+ ?2 e$ L) a  ]2 W9 @4 Q- H#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), n6 _& s0 O0 L4 I; O# E5 ^
/ W' V! ?3 _' u3 l6 k
/* assign the tl som board LED-GPIOs*/4 V5 [  l# u* d
static const short da850_evm_tl_user_led_pins[] = {+ O; t2 H; t' W
        /* These pins are definition at <mach/mux.h> file */
  a' L; i8 W/ q+ H  m  J; o+ e5 r  b        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 d- L8 ~9 p7 b. e; w        -1
. ]7 M$ `; g4 l! \' W& {};. e5 A! N; w0 }3 K
, W3 \. M: Z* m' h' v; S+ d, x' B, C
static struct gpio_led da850_evm_tl_leds[] = {
7 L3 z. O1 j, a5 q+ o8 I7 N        {7 Y. B+ w  i2 P
                .active_low = 0,
4 W9 ?5 ~3 R4 v                .gpio = DA850_USER_LED0,& s7 Y! T2 v* C/ \: D
                .name = "user_led0",# f+ i. f% l0 P' W/ y6 L# e" l! v  Y
                .default_trigger = "default-on",
/ x+ J0 [3 R# @, c        },
0 s; b6 G  i+ f' w" C) i% X2 @        {
' v! w9 Z# N4 c6 W5 Q, j                .active_low = 0,9 W) B8 V  ^& c+ z3 k3 w0 W
                .gpio = DA850_USER_LED1,
2 x( o% F2 l* h" E9 u  Y0 h' B                .name = "user_led1",8 P! ]& h3 U2 w2 o2 }. P
                .default_trigger = "default-on",
3 K0 d$ R. `$ |6 K6 s% t; ~1 [        },
+ D% |" z2 g' H; [        {
: D/ T$ D. o  N9 ~                .active_low = 0,
* E$ b( q1 ^) {% Y# ]                .gpio = DA850_USER_LED2,
# I* k$ l" H6 S0 `7 A5 I* h6 S                .name = "user_led2",, J" I0 x. F& s9 \/ G3 T9 Y# j1 e3 @
                .default_trigger = "default-on",, [$ V! J  i" i! o& V  f
        },6 T# ], F3 l1 g5 J0 Q+ B
        {
1 L4 J0 R* `, C) R                .active_low = 0,
8 m( E( e8 Q$ u. W1 |( g$ n                .gpio = DA850_USER_LED3,
8 Q7 W0 S# X0 W7 W0 l                .name = "user_led3",
+ z( g5 R3 I: I- j1 r+ ~# T. I                .default_trigger = "default-on",
4 w8 m9 L3 L% _- W/ z$ e' [        },
* _, M1 `  X$ _$ i0 c};
" k- G6 H0 K9 o. _3 ~* A5 X# J" ]1 G6 u7 j
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 F/ o# i6 H8 W& W  i( z        .leds = da850_evm_tl_leds,  e4 ]& m3 I, q" t! c) w4 _1 F
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% c4 ~/ k% i0 Y- T" D};
, |3 H3 S# ~2 Q# i0 |5 z2 y  \+ ~( s$ @( N0 ^/ X
static void led_dev_release(struct device *dev)
- t1 a) q5 g) H/ L- r! g( n2 I  x{0 [( m3 `! |. O% [: W: s
};( ^8 p) T7 j& v5 f; T
: F8 d- _# B5 h+ E
static struct platform_device da850_evm_tl_leds_device = {; C6 Y5 `, k" }+ r  P
        .name                = "leds-gpio",8 R0 h( T. s* y9 ]( w
        .id                = 1,
+ g5 ^, v+ V  O- U        .dev = {. {! |0 s5 K7 ~0 w- p
                .platform_data = &da850_evm_tl_leds_pdata,9 E2 Z( s' v9 ]6 k2 H
                .release = led_dev_release,3 V1 r: k: [  f4 K
        }
& f* Z$ l0 a' q8 m% h: ^& [};0 J) ^8 i+ V) @* w; e1 @$ E: j  T" H

, ~( b" Q5 C- g& T5 Kstatic int __init led_platform_init(void)
2 _; W5 ]0 E; ?" g{( V: I. S/ o5 E- c0 X0 l9 H
        int ret;
8 D7 t6 u4 C) `& ^' c) u% u#if 01 t1 A# L+ p  J. d
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
" t& Y6 ^" q8 `! _+ ]$ @        if (ret): m5 ?: z8 }8 c3 L
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 z$ I5 i& Z" |* v
                                "%d\n", ret);* H2 [' M/ v; t& X+ N
#endif% t3 N1 O3 a/ r9 u/ Z" A
        ret = platform_device_register(&da850_evm_tl_leds_device);9 n1 d. P$ P* J. ~: S% X
        if (ret)% d7 L* C! r" ^! Z# z+ x
                pr_warning("Could not register som GPIO expander LEDS");
6 w& E" e9 m! f+ `        else
0 y' V* z8 y, G9 z7 Y                printk(KERN_INFO "LED register sucessful!\n");/ f/ v- h( D/ K- T9 r8 ~3 O: W/ L' B
* g  F* \" F: h$ c) `. f. r! F/ K
        return ret;
+ S% z2 c- J6 q: ^& G}
6 z0 N9 ~: n; S5 Z1 f. X2 B! O% t+ G  b7 _
static void __exit led_platform_exit(void)
) k/ R' m1 w/ ?% i6 W$ H4 T{- `' E8 L; Q" H& S' d. ^  y
        platform_device_unregister(&da850_evm_tl_leds_device);
' u9 v& l1 G8 }+ C6 \1 b5 n
7 C- z' I1 N. s3 c        printk(KERN_INFO "LED unregister!\n");8 e' F9 ~- ^$ Y5 L* |3 N1 s0 Y
}
) Q7 o& Z4 l: a" t! W2 U1 n4 F; Q% v* U# ^& n
module_init(led_platform_init);
' n/ J9 P8 _, {( wmodule_exit(led_platform_exit);7 T5 y& [, V4 k+ ?
. M" Z: B7 E" O8 K4 O
MODULE_DESCRIPTION("Led platform driver");' C* _  D. s4 e. a/ `
MODULE_AUTHOR("Tronlong");
3 q' i3 ^! N8 l. K' r( _8 [# O5 ~MODULE_LICENSE("GPL");
# S2 j, K$ X. w" f6 g! @6 r+ I" |; b8 j, O7 W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-12 13:58 , Processed in 0.037222 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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