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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, o6 ~5 ~9 d6 g/ k7 [8 ~6 g* ~, ]! D#include <linux/init.h>& Y( l2 ], u; H" g0 i) h: [
#include <linux/module.h>
7 }  H! E. k# R1 l2 C#include <linux/kernel.h>7 U9 t* d% G+ W' O% v# ]
#include <linux/types.h>
, d; d% n. b* s* y! `$ l) U) \#include <linux/gpio.h>0 e& A3 \# Y, S1 J' a
#include <linux/leds.h>" U9 p5 m# ]" p7 j
#include <linux/platform_device.h>
* g5 M4 k" f) @: u: J
; I* o+ s# Z/ P, p( a' Y( D#include <asm/mach-types.h>
# t6 G* _% W% K& b3 a( q#include <asm/mach/arch.h>1 t7 |3 n* Q! p" Q- O
#include <mach/da8xx.h>8 F: P' c$ ]5 b" a
#include <mach/mux.h>2 q7 h+ |0 ]1 B: x9 `  ?
5 J# `4 l4 i' a( O9 [
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& j# N7 }6 P0 O5 Z' g2 Z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 _% B! q( {$ d( ~& ]& \7 }+ B* I' a#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' L2 e: Q% E& M2 f# i#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: X" B- C% F' E5 C0 L& p3 x6 ~0 o  @* W# B/ a" ^. C6 [+ ^4 v
/* assign the tl som board LED-GPIOs*/
5 P8 `- r1 g2 k5 G  ^  B1 c8 F1 N. Wstatic const short da850_evm_tl_user_led_pins[] = {
" \# ?, D( I' |5 S        /* These pins are definition at <mach/mux.h> file */7 Q5 p  f2 M$ m& K) x3 D: }
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. ~, E1 Y# o7 O9 Q
        -1/ t- I6 d$ }( T1 D
};
6 `5 }/ q) W( p9 [* S- B' g, Y' i. L  W" Z9 k
static struct gpio_led da850_evm_tl_leds[] = {2 t& }4 ?' F; z" r5 h! u* v8 s# U
        {0 ~9 Q% O( q: ]& d2 P; \
                .active_low = 0,1 }& Y6 R/ g2 W
                .gpio = DA850_USER_LED0,
+ W# V  X- H1 v                .name = "user_led0",* }0 d1 T( F# `* l5 o- V+ e
                .default_trigger = "default-on",
# y' F" Y  i7 U: ~3 a+ `8 A6 i* S% D        },
7 g/ H& V2 T- Z6 n        {) K- S$ {& y+ c
                .active_low = 0,9 b" b& |! f! {1 ?# g& c
                .gpio = DA850_USER_LED1,8 D- f  A# g* p2 B+ k4 b% S
                .name = "user_led1",
5 B8 x' _. ~7 C3 l- h7 t& q- }" Y7 f                .default_trigger = "default-on",0 _9 u( C" q( ~# k2 [
        },2 Z. D6 H* {5 S: O2 w/ x
        {$ u; H) F  T( T9 O. b& s7 X
                .active_low = 0,
4 o9 Y3 B" ^+ ^% V6 f' V& F2 l- ~; r                .gpio = DA850_USER_LED2,  W0 F) E7 W! d; P* x  E" `2 n
                .name = "user_led2",0 ]7 }# Z8 L2 u  T0 ~) s
                .default_trigger = "default-on",
  W  \' M4 g# S        },. a  f! u1 O& R5 B! F0 s
        {
5 I% l" j& k" |; Y3 K; \, P0 N- Q                .active_low = 0,
4 g3 {1 d* U* y- _0 q                .gpio = DA850_USER_LED3,( ~* K" J; {5 y5 [
                .name = "user_led3",* R( X3 t! E0 j. v' m  A
                .default_trigger = "default-on",: _7 l: L( Y4 q
        },; x2 T. v* k% b% E
};! @  N/ q; p: ~9 y  N1 |
3 a, o! L! m  V2 A& z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ Q* ?9 c/ L' Y3 y! D' h% m$ q
        .leds = da850_evm_tl_leds,2 i  {! h6 y# U# J6 W9 Z0 A
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: x3 }$ N& |6 U: W; \+ ?
};% v4 b, g3 X) f0 C) U
# ]. v: }( d! v4 i4 f" d
static void led_dev_release(struct device *dev)
" Z: t% ~2 @; O, k{
+ V* y# j# ~  c5 B4 l; W$ D0 i4 c};' `/ u0 r! B3 S& Y0 z1 v) Y
2 L3 ~, O: N& Z3 c/ O; s
static struct platform_device da850_evm_tl_leds_device = {
9 \! n+ j0 t. e( a) O        .name                = "leds-gpio",
' G# L" o5 ~% g; H5 t+ ~- p        .id                = 1,
# L7 E& Q# J* n7 t: ]* m3 M        .dev = {2 o" e, i: P9 G% x/ Q# F1 n
                .platform_data = &da850_evm_tl_leds_pdata,1 e1 N: {' H! X& z; U  ?' B8 ~2 d" \
                .release = led_dev_release,8 ~- I- f' ]) W. p8 F/ t
        }
( ^4 X: ^$ _3 B! g- s};0 h' H! c0 p" Z: ?1 u5 c+ U
: R" f( g% I  r
static int __init led_platform_init(void)
: O" W5 j2 m1 `. I# B! s. n{
% {& e! x4 t9 J+ _4 y+ N        int ret;( D4 j* V! k; Z4 w* L$ z* u8 @
#if 0$ V- i1 k, b; `/ Z- C# d
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 W* u; w7 K+ e1 |5 r. V: B
        if (ret)
. V# l' Q9 [; P; S9 L$ Z$ }2 G                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ y; C# y) K- X; C/ u4 c# n
                                "%d\n", ret);' [8 u' ?+ Y4 K. ~# x
#endif
( C( o8 ?* F  z9 G: w2 {        ret = platform_device_register(&da850_evm_tl_leds_device);$ d8 k3 b" n- O) M
        if (ret)0 |- M* {$ M7 N0 D) q+ _" p- P
                pr_warning("Could not register som GPIO expander LEDS");; W- t( f8 {8 D0 i/ F
        else8 `0 h  y5 q) @
                printk(KERN_INFO "LED register sucessful!\n");* A; h, Y( K1 m1 a* R. V
' f: L" j. s2 L3 ~4 y9 n
        return ret;
- y  e6 G6 w3 ^}8 h+ H$ J8 v* O" {9 b4 ?7 R

4 z! l! \8 b4 K' `4 rstatic void __exit led_platform_exit(void); p7 T& ?4 d+ U& _
{9 y9 x  r8 B/ ^
        platform_device_unregister(&da850_evm_tl_leds_device);
2 A/ F7 S" Q0 B  ^. b7 D5 c0 H8 e0 T( V4 S! m
        printk(KERN_INFO "LED unregister!\n");
) d6 W( E- y5 v0 q4 b# _}$ G$ e9 D  g. v8 \0 H/ C
1 D6 @, @. ^. f5 J$ k( W; m1 B
module_init(led_platform_init);
% c& V* k  F( Fmodule_exit(led_platform_exit);
8 W; ]4 V! Y7 a$ O, D, J% B/ G: V3 k" m8 ?$ A" m$ x6 M. d1 n
MODULE_DESCRIPTION("Led platform driver");0 t/ C2 o8 n2 E! b1 m0 n
MODULE_AUTHOR("Tronlong");
7 r5 ~  k$ Y8 M" H- y/ zMODULE_LICENSE("GPL");
  s* @, X$ a; k: n, R3 X1 q0 @5 w  k, ?4 L" J  v: H; P) h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-13 12:20 , Processed in 0.045631 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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