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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 E; r9 j, q) T8 n, k3 d& u#include <linux/init.h>. ]' b# A" B/ B1 S# i' e
#include <linux/module.h>
+ ^! Y- m6 D, O+ K9 O/ |#include <linux/kernel.h>$ I: x! v4 Y9 \
#include <linux/types.h>- [1 A- s; G8 L; @# q& Q
#include <linux/gpio.h>
- N$ B; G2 [2 Z$ h( o; d$ H# _% h+ ~/ x#include <linux/leds.h>
% Z1 \7 r% M+ a: C+ B#include <linux/platform_device.h>) R+ I: M- y" o/ }6 y  B
) Z6 j# j% I6 }! m/ o1 g
#include <asm/mach-types.h>
# F  D4 Z+ b$ x$ C% s4 o8 [5 ]#include <asm/mach/arch.h>
% f. z+ e+ H" {  J( |; k#include <mach/da8xx.h>. s" t( L; \; X
#include <mach/mux.h>
# {* E" `& S3 x8 O% X) K) M" w& ]$ V5 M) v
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ l2 ?5 ]5 z8 f% G8 T
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 N3 ]! L5 D% d% h
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 t& |! P* [1 ~, f#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): n! ]/ P* N7 m' `

" [0 }! Q/ D7 L2 @; Y/* assign the tl som board LED-GPIOs*/$ R( J& ~! m. M
static const short da850_evm_tl_user_led_pins[] = {
: F3 r, w+ S5 b. D0 q* i' b        /* These pins are definition at <mach/mux.h> file */
) w9 P8 S  V3 T- K$ t. E        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; ?0 \$ R" s) W: w6 j( f
        -1
4 e, ?7 v" F: h};
. x1 r9 j* g( S' q' ], {$ N6 J3 H2 C$ o6 L. J+ i2 w
static struct gpio_led da850_evm_tl_leds[] = {9 |5 ]& f/ ^1 J$ A, A
        {
2 Q% g6 b- |/ g2 ?9 q: e( E                .active_low = 0,5 a) @- Z. M* q* G3 r, W
                .gpio = DA850_USER_LED0,
: ~) P0 G$ ~7 I1 y) U& [7 e                .name = "user_led0",, A0 Q  t5 J+ Q# y
                .default_trigger = "default-on",
1 W( g7 r9 Y7 t; A8 W! D        },% Q; l) U3 l, v. v2 b6 ^5 H
        {
1 L0 y$ j  T* @/ B                .active_low = 0,
# C. V# E. G) T. X+ x                .gpio = DA850_USER_LED1,
/ r4 T" y) U) r6 y# ]; I2 [                .name = "user_led1",
( N/ t& \$ U! c* M# k                .default_trigger = "default-on",5 S$ \- u* e- }& g) {/ ^
        },
5 y" y  i( {1 k7 M" I$ |0 P        {
. a* Z2 K; h* f; `* a; [                .active_low = 0,0 q- C4 [. I! L2 E8 G, n1 F$ X/ H) ^
                .gpio = DA850_USER_LED2,
: }, H  p& l3 [, Y$ f9 ^& Y, @                .name = "user_led2",* L, E$ r. e+ B# j( J$ _
                .default_trigger = "default-on",6 t% x5 o* a/ {, q5 e& h% P1 T
        },  v# C4 Y+ A0 |& @2 b4 L0 y
        {; Q7 f0 h: v7 Z; \4 P4 K
                .active_low = 0,
; I) e# w5 f2 _- }                .gpio = DA850_USER_LED3,% d; d5 a' f1 A0 s) Z$ c
                .name = "user_led3",
7 w! z5 k& K3 W  L" u( f& D                .default_trigger = "default-on",
# e8 z3 n. ?) u; Y8 T. r( e        },
/ [7 r2 v) u8 r( P: _& v- c& z  O};
0 Z( H5 U2 ^9 J7 G* ^" e
7 k& O8 F" D# P8 g# cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( o, h  q/ a5 ~( ~$ H- A. P        .leds = da850_evm_tl_leds,
5 O- g! j) G8 J) x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  g4 Y1 P9 }0 {2 ~9 p+ \* z, F};. A' Q2 x0 J" a: |) Q" A
9 F- q% B4 j  j& N( i) v
static void led_dev_release(struct device *dev)5 z, a% N7 K6 o2 N
{
0 k/ `4 _0 h( s8 g- k};
8 M% Z0 Y5 I: Q0 ]3 b/ C3 v9 B: j0 @# w4 q) |9 \
static struct platform_device da850_evm_tl_leds_device = {* J7 n8 ^. {) ^0 b9 P( A" @
        .name                = "leds-gpio",
5 Q) y& M2 c' V/ L+ _4 \        .id                = 1,
# H2 {- @0 T. y6 _% {3 s4 Z0 a; K: N        .dev = {
" I  n( C" y4 I+ M5 `* ^6 ]  j                .platform_data = &da850_evm_tl_leds_pdata,; P- [: I1 m  A9 S, v
                .release = led_dev_release,# j$ y, ~% D, `" o
        }
9 ?: c$ n) g. P7 s1 `" |  ^. s6 \};$ O* i8 w2 c* B7 \0 F" A/ Z% a
2 m# A% W. I# ]- r' @; f2 F5 h2 `$ b
static int __init led_platform_init(void)4 s4 N; @9 ^9 c7 `; K: ~9 v& Q9 o
{. x* C5 L! r9 v
        int ret;$ R  G# x$ m9 e7 o
#if 0' D8 B! |% @+ P5 E
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: D4 [$ w1 b! C6 n8 q9 U! \        if (ret)
: ^0 \$ o- [7 x                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* Z) }% ^' D( Y3 P! x! l                                "%d\n", ret);
, k, v' G, g+ C6 ?5 y0 l#endif9 J! x7 S% R3 x( F! R4 p+ k
        ret = platform_device_register(&da850_evm_tl_leds_device);* H6 Q' z2 i, }- H1 H  J" B
        if (ret). Y7 d  ?  r8 J: A, T: O
                pr_warning("Could not register som GPIO expander LEDS");
1 U% k: W% K. H+ D  n        else
1 i8 t8 r. O* r9 M% Y$ i7 f                printk(KERN_INFO "LED register sucessful!\n");
$ }' A1 e. r1 d' a0 s7 A& o
+ F4 U) q  [2 }; B5 E' }        return ret;6 l9 L# H4 L! \" P
}
" r/ r% }$ c' f6 s
# s% F3 @5 G! E' z# Ostatic void __exit led_platform_exit(void)$ e: C) Z  Z& V  F% r* r
{$ q- R# s; s$ a/ O' q( r
        platform_device_unregister(&da850_evm_tl_leds_device);2 i2 Y7 `7 K8 e( s. }+ L1 G

6 p  l4 l% R$ V  x6 J: D2 l; t        printk(KERN_INFO "LED unregister!\n");3 x, t0 w/ x4 h/ `" E9 S
}
3 Z' M2 O& _# J; P" k: i' r+ I& l, R7 n
module_init(led_platform_init);
. a' ]8 f% k, |8 l5 imodule_exit(led_platform_exit);% _; k+ @3 p: z- p" j4 U, Z. E
3 t! l' n4 L, A* k5 P# @: o* r8 M
MODULE_DESCRIPTION("Led platform driver");
' ~2 a1 f3 t; ?. |MODULE_AUTHOR("Tronlong");$ m! ~7 D' G1 |2 c( n8 x" d
MODULE_LICENSE("GPL");
9 u4 p6 O9 x. X. ^8 M
; \/ Y! K2 T# ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-11 19:55 , Processed in 0.048027 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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