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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。4 e+ [% C. @- h! _# }6 U
#include <linux/init.h>; g' J0 O; @5 ]$ T# K
#include <linux/module.h>; Z1 n5 m( e, O1 j+ g  P6 t
#include <linux/kernel.h>
' f$ ]6 j8 F1 k1 `#include <linux/types.h>+ n& |  B$ [8 S/ }8 m2 v
#include <linux/gpio.h>
( g. ^+ H) u# Z& ~6 |* ?( e#include <linux/leds.h>
# {2 |: a& H9 b% g7 F#include <linux/platform_device.h>
, J' z+ B! P0 f7 S- t8 E( G0 i2 w$ Q- e- F8 ?8 G( h
#include <asm/mach-types.h>
6 m2 p" L0 G  }0 F" S( E$ w9 j#include <asm/mach/arch.h>
9 b# l# e! T  W, t( w#include <mach/da8xx.h>% J+ L+ E, f: I: z  w7 {/ O
#include <mach/mux.h>; @9 S* o/ D; y1 J/ ]
# ~8 V( K/ K3 U
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; a# Y  j% R! \/ B! C7 O. |#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 _- N# g% I+ U; c$ c#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  o$ ~* x: |1 S6 Z& }; ^3 Z6 }1 B#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- F$ w' i/ h$ t: u( U

5 I; r2 ^: i! [! W/* assign the tl som board LED-GPIOs*/! _1 g8 v& q2 _$ D9 q: U2 G
static const short da850_evm_tl_user_led_pins[] = {$ M8 o# {1 ^$ Q' V8 z& n
        /* These pins are definition at <mach/mux.h> file */
+ O7 d2 Z8 V+ e        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 J2 r; }/ p# X& Y) t7 i) r
        -16 g: d' F1 J6 z
};
" ?4 q8 D2 R9 F. t, u4 \0 Y3 I7 h  W. j" s7 w
static struct gpio_led da850_evm_tl_leds[] = {$ H1 b& Y3 Z6 _8 n5 C9 u) R
        {1 f0 {; a0 H% @% H
                .active_low = 0,: ^( D; t9 c. f- b. U1 L3 T' _
                .gpio = DA850_USER_LED0,
* k. p$ ^& C4 Y9 s4 A0 _                .name = "user_led0",, Z: i  Y3 t6 Z% d( Y4 {& ], \
                .default_trigger = "default-on",
: A0 g( Y; k$ M* p" R+ e" {/ }        },4 w( \4 i, f  `& ^( @
        {1 I" ~; ~% u2 L
                .active_low = 0,# \2 D7 t; A# j$ y  B
                .gpio = DA850_USER_LED1,
" D0 f3 ]* Y$ z: M, V" B7 F                .name = "user_led1",
, B+ p# q$ m' X% S) o/ |( _                .default_trigger = "default-on",' T* M/ M9 X  B5 R" ]0 t
        },
0 p. `: p- y$ U5 {        {6 @! e. `+ w7 v
                .active_low = 0,6 a# c4 ?8 d- N% |
                .gpio = DA850_USER_LED2,. \' m" k0 }$ g" J9 A
                .name = "user_led2",0 Z: X* p5 n; a3 a4 t- }$ u. F
                .default_trigger = "default-on",
1 C$ K# F+ c& s4 f3 o+ e/ m7 b        },
* P! n" j3 D8 @+ J. q        {7 g" H7 L' p6 E+ O
                .active_low = 0,
0 E* v2 X! i' z  @9 B# N4 u. z                .gpio = DA850_USER_LED3,6 Z% v8 w3 \( K3 v# D+ z3 w
                .name = "user_led3",0 h; E+ B( z( ]
                .default_trigger = "default-on",
7 Y9 K; T$ i; I8 Y* N5 _& L        },- H3 c3 i- D% D- l$ g3 x* D
};0 S& N% b- k- p& K2 V0 G

/ O) c/ Z9 n# f0 A0 w% R: Ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 H8 }: W1 |# a        .leds = da850_evm_tl_leds,1 D, A7 C# T- t1 O
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( X: z# g! `6 V( }& V};4 {# G0 I8 {2 e! w; q
) }; [* T9 x/ ]+ g( \/ A- U5 a9 `
static void led_dev_release(struct device *dev)) v4 h+ |: Y+ H" g/ X9 I8 V
{
5 ^, N0 Y4 ^1 b" O% G};
/ [" {  `( b7 U- O: ?8 I  R9 V4 U7 m7 T2 B
static struct platform_device da850_evm_tl_leds_device = {  H$ H) a+ t! B% `5 @
        .name                = "leds-gpio",) O' I* ^& ]- C$ x' p
        .id                = 1,
5 D  V) o) [1 v$ ?        .dev = {7 T9 F* F, K& M0 X' ~8 W( C% G" E6 z
                .platform_data = &da850_evm_tl_leds_pdata,
2 n, f5 n* W8 I1 m+ w                .release = led_dev_release,
8 R3 w) M* w5 x) K1 k; o        }
" C8 Z* u4 ?' I7 p0 y& _5 f' v};
. V2 w& n+ _; _+ K9 n4 @9 m# P7 Q8 f8 p9 U2 x# Q
static int __init led_platform_init(void)
  W! o# z5 M0 Y# O2 l  S+ G{1 p5 P  |9 U& U' P) t8 i" p
        int ret;
) b4 v" {9 d! q5 [* y# ]) d#if 0
4 S1 \; f3 v: D/ k* Q& A4 _* F0 T5 k        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 x. f# u6 ]* z5 @# p8 ], X- P4 y        if (ret)
" L4 S' \0 @* U$ z6 Z+ D1 E                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% z9 L' e! G* \9 B5 ]
                                "%d\n", ret);
/ Z* D3 G* Q+ l! y#endif
1 N: O( {( i) G        ret = platform_device_register(&da850_evm_tl_leds_device);7 P) N( ]! O& W* G" x
        if (ret)% ]+ q; k$ s7 z$ O* z
                pr_warning("Could not register som GPIO expander LEDS");/ w$ o. C0 V2 f  y: G7 O
        else  ]5 f4 B9 x& \( N0 O1 |! s. Z
                printk(KERN_INFO "LED register sucessful!\n");7 {1 l9 [! \0 O5 N/ ^
. o. s5 d) E6 p9 v: u. l
        return ret;
" s* W1 o" [" R4 \, q* i# Z}/ L2 A! U8 b" Z' {6 `

/ z. h5 [, a- A3 j3 ?static void __exit led_platform_exit(void)
1 E! s" p& t5 c" P9 A# Q* W& W{
/ U- \- u, ?; B, F8 b) M$ ]" \        platform_device_unregister(&da850_evm_tl_leds_device);. e$ R$ V2 w, Z2 ]

" O, v5 g6 K  b. `% B8 w4 f. ], F        printk(KERN_INFO "LED unregister!\n");
  L3 o* S* ]5 L1 B4 R: R}7 [) ~( t  U; ?' M. z  |8 z' N

6 O, L, \8 A/ C  Z! v# ]# Wmodule_init(led_platform_init);
% @4 V* o$ l- A& V1 ]2 ~module_exit(led_platform_exit);- D2 \" {0 I; X* ?( s

4 y1 f5 u( a9 ?" g- a! }MODULE_DESCRIPTION("Led platform driver");
+ A' J, {8 d7 G5 NMODULE_AUTHOR("Tronlong");! Y! B. @1 `3 N  @
MODULE_LICENSE("GPL");4 N! o' P) O  Q) h
% ~. n( o8 T$ u+ R8 m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-5 20:49 , Processed in 0.037322 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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