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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: E, ?7 ?  n( L#include <linux/init.h>% a. T. [0 D9 ^  q" c* q
#include <linux/module.h>3 i) _( L% F* P. L: S0 \! s8 n3 s
#include <linux/kernel.h>
/ y% d% u( r) O2 B1 b#include <linux/types.h>
( Z! t8 M7 o$ J8 `/ U& ^) l1 Z, X#include <linux/gpio.h>! ]) f+ s  @2 |$ M  \
#include <linux/leds.h>
8 Q# ?* X' f; ^/ v% v  q#include <linux/platform_device.h>
0 n/ t' U% s/ v, A" C* n# _0 |
. F: H/ F+ h+ J0 T#include <asm/mach-types.h>
7 ^* p5 y# t6 M& v5 j3 C#include <asm/mach/arch.h>& O2 f+ @. }0 O2 W. `$ s
#include <mach/da8xx.h>
2 L$ k  ]& L0 ^4 z4 S% J8 t: G# }#include <mach/mux.h>1 Y) l' v+ T) e' `3 \+ [, ]5 j
$ o) z) y8 b; o& q8 X' k! b
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): i7 k! _' W% O& J
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 t: p2 m  N  L: C1 }
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1). F3 k6 |8 }+ N7 v9 a+ d3 `6 z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 \( W8 t& N$ R; t9 _9 B' I  f& u0 Y- M2 z4 t/ _
/* assign the tl som board LED-GPIOs*/
2 E9 E% y. j7 }4 b9 P2 e+ X' astatic const short da850_evm_tl_user_led_pins[] = {4 r5 y" Z+ o' U4 ]% q) A0 b* N# ~
        /* These pins are definition at <mach/mux.h> file */) j' b+ ]  O) [
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 e+ j9 G* S3 B  i; _+ Z- l4 |        -13 a  V3 Y; b5 {9 ^' F- v; m
};
5 Z! s% _* |) r/ ?& k0 ]  f, M5 W+ p0 K, n% x! G
static struct gpio_led da850_evm_tl_leds[] = {: D7 G, {/ l) \3 v
        {, T/ K# P+ ]; p$ T$ t3 Y# `  u5 Y
                .active_low = 0,
9 k- o$ G" g6 s: w' ?                .gpio = DA850_USER_LED0,3 K! N$ Y* g/ J
                .name = "user_led0",4 Z- v0 u# o+ J1 R
                .default_trigger = "default-on",. D$ t/ z' t6 \* q: w' S
        },. \! W* s7 ?2 c& z
        {
  a$ v0 N/ ~% u, j$ k" ?                .active_low = 0,. L0 e( R0 z  D& {3 q& a" }
                .gpio = DA850_USER_LED1,/ Q/ N0 S- C  ?
                .name = "user_led1",1 V( i5 n, i3 g  A6 C
                .default_trigger = "default-on",
% l& l/ {! J6 H2 T3 [2 @        },
3 Y$ T$ ~/ |# Z( Q: c        {
9 j! S; o* t$ m4 K% ~1 S3 ~                .active_low = 0,
4 m: i: Q0 I/ ^0 ^2 t, j                .gpio = DA850_USER_LED2,
% C! U$ o# I& h7 {                .name = "user_led2",3 u7 j& P7 V- ]4 i
                .default_trigger = "default-on",3 x' @" _5 A2 I5 n% T
        },2 K' R' a' `. d# i* N2 M$ Y8 v
        {1 e+ H. F/ Q+ J. k: B0 {0 t
                .active_low = 0,
: k9 J; C! g0 N/ [5 {% i5 J                .gpio = DA850_USER_LED3,! P' e7 L+ w" q. ]5 @) _3 d
                .name = "user_led3",
) J$ ^+ d# q9 X$ t; K: F2 G                .default_trigger = "default-on",! K7 j+ F9 _0 R" d" B' U
        },+ Z7 Q5 H5 d1 e/ q3 Z  h  R: P
};- L6 V6 K' ^% ~- S8 G$ T! n
, L1 A2 |; u1 y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 ]  {1 Z) b3 q, m$ S3 @, V
        .leds = da850_evm_tl_leds,, J  t  V9 B  k$ c. L  L" M2 g
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ z" t* v# u4 [+ b5 }* k0 N};7 a' c$ l  d1 t% A* \
5 u+ E6 C+ M8 n9 P& W! ?2 ?3 T0 Y
static void led_dev_release(struct device *dev)
$ T7 |2 r3 d1 b{; {' w4 V& ~3 c6 ]% Z% G' W
};
3 R* T/ J- `/ N5 S) L9 {  Z/ I/ s+ Q0 Q! y
static struct platform_device da850_evm_tl_leds_device = {
; G, f, |0 z- D: d$ Q, R        .name                = "leds-gpio",
' d1 E9 S# U7 d6 {& K0 Q, G9 W) [        .id                = 1,
% S, v7 f$ |2 ?# T/ r2 H3 r        .dev = {
' y; F5 i7 d" \! n/ w" d                .platform_data = &da850_evm_tl_leds_pdata,
; s( n* M- w. Q4 ~* S  T. B5 i                .release = led_dev_release,$ w! ^9 c4 O- c1 p. @  U* B
        }
( S6 F5 p, C0 |6 A$ M: x# z};& y. O' x! m4 z2 U

8 [2 m1 B; ?: _6 ^static int __init led_platform_init(void)
. Y2 z3 x8 j2 M; j# ~* D8 b{, F! s1 }$ r* }7 [* ]! K/ g
        int ret;% L4 U" o6 _+ V& r
#if 0
* l- N2 Q) @7 c        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' [& d2 }) ^* j; N: \# ?0 {        if (ret)) Y: c2 ^& @' O) e
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ t4 ~- t8 h( _8 z
                                "%d\n", ret);
# S( `" O  U- f2 @$ Z* h7 Z) H; Y; H#endif9 q9 K# w2 f4 @9 V( y
        ret = platform_device_register(&da850_evm_tl_leds_device);
5 ^* q5 G) k' F, {        if (ret)
1 @( S% f7 B5 G6 m* @4 y4 v1 s, w  f                pr_warning("Could not register som GPIO expander LEDS");+ ]: r- M. y6 @0 s: |
        else
& \% Y* W7 q8 K3 A& y6 {                printk(KERN_INFO "LED register sucessful!\n");' S! A; h, t( K+ _  Z$ J5 n
5 ]9 O2 b! _% Z& O; R2 X
        return ret;
* L1 ~) }( P5 a, |% k, f}
  I; D1 p/ C3 q
4 n, B1 l2 |# @5 Mstatic void __exit led_platform_exit(void)9 o7 p3 g# [0 n
{
4 ?+ P. L  \% f" u        platform_device_unregister(&da850_evm_tl_leds_device);" X( V( B, }; I( Z" p0 _4 W

4 m2 R2 r: M9 o        printk(KERN_INFO "LED unregister!\n");
( {+ J/ ], \1 U8 ?6 `}' M, r5 T1 k# U) m# m+ W
/ N+ |# J; F# u, l/ q
module_init(led_platform_init);; P" c+ v( i% A5 @( `& t
module_exit(led_platform_exit);( n: V& ~" m8 h

2 i) j# ~7 q9 c* W9 F: g3 QMODULE_DESCRIPTION("Led platform driver");
0 y6 I" \6 i) c3 h9 ~MODULE_AUTHOR("Tronlong");8 l1 E3 t6 ]6 z. K7 ~7 o
MODULE_LICENSE("GPL");
5 O0 z8 U9 `) ]+ Z0 F2 z$ f, s4 F4 F& B0 M) L. q$ ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-18 07:00 , Processed in 0.036364 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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