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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( T) x" T! t" R% V$ y9 I#include <linux/init.h>
) ^( Q  V, D8 ?& E$ m+ q#include <linux/module.h>  ]; z, p3 Z* y" C: ~1 R
#include <linux/kernel.h>( R& w7 I* v' h
#include <linux/types.h>
' }; U6 m$ R% `' \; i% ~#include <linux/gpio.h>
1 h8 }) n0 H  W; Y#include <linux/leds.h>
. c0 i( p9 v4 ^0 Q1 S" u#include <linux/platform_device.h>
$ I5 O; M* R* S6 e* r/ I
8 ~  f. v3 F) |* B3 Q7 J#include <asm/mach-types.h>
1 Q  Y- v7 I" ?7 ?, j# K2 ~#include <asm/mach/arch.h>
, J9 ?, ^. D" t3 O+ [#include <mach/da8xx.h>
; n+ \: e, x7 @#include <mach/mux.h>
6 U, s3 y- u5 o9 m& U+ D
, y3 q. D, C2 y. d" r. S" N. U" A#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. V9 I8 O( Y* ]+ N' G#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 L) z# p( i2 G0 Q: o
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ c/ r& ^8 K# d! A9 T#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 z1 ~) c) `0 E
4 B2 W: y- T8 b& r# g/* assign the tl som board LED-GPIOs*/# K8 B! v3 j5 g& s
static const short da850_evm_tl_user_led_pins[] = {
" s7 l& v! f! ~! u  S2 e        /* These pins are definition at <mach/mux.h> file */
3 b0 d4 v( y( a: T6 Q' ^6 E        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 w3 z+ h( X9 g  U
        -1
0 ^; G4 E/ c! g};: D5 B+ z" m8 j- u4 k) J
1 F# x; D9 h* {0 n8 N* J
static struct gpio_led da850_evm_tl_leds[] = {
9 S3 k8 ~: j  W' c2 H        {2 l: X( N0 V8 H: c; p8 I0 r$ ^
                .active_low = 0,1 m, B3 X: T8 L+ Y& ?5 c
                .gpio = DA850_USER_LED0,
) |5 s0 l  F0 G: h% I) ?/ @                .name = "user_led0",
' M7 y5 t2 p4 j7 Z1 O                .default_trigger = "default-on",& H( S+ o3 M. W. \2 i& E
        },) Z+ {5 o: N' E' J5 W
        {/ [- ?: ?1 f/ F. i: Y8 A, j; ^% \
                .active_low = 0,
- u& b4 ]& V8 x! P                .gpio = DA850_USER_LED1,7 l, \' w3 M7 z1 ]4 k
                .name = "user_led1",$ c2 H) p8 b8 C4 |3 b$ B
                .default_trigger = "default-on",
. A/ m% u) o8 Y; }6 y; B/ \        },  |  [8 b* K( S
        {
! g& j  |2 k( M" x4 N" ~                .active_low = 0,' e  X* H5 s7 D) P' p( x
                .gpio = DA850_USER_LED2,
# o$ I1 b( u' y  |5 g. c$ Z                .name = "user_led2",
7 R3 a0 f. e( r* `- H) }                .default_trigger = "default-on",
8 l7 K, t" R0 F! T; U6 `        },6 m$ G1 ~( i* y0 g
        {
/ y% ~" x6 g2 O! L4 I" C                .active_low = 0,5 {; I+ W' j4 c3 u$ t
                .gpio = DA850_USER_LED3,) g$ c. X9 x' Y1 z2 u
                .name = "user_led3",
$ b* t+ D" x0 v1 j+ w7 |                .default_trigger = "default-on",
( _$ k. u8 H; }/ F! h" L        },
; y& O, `, x6 b  Z  V};
. t: x7 H6 s; h0 H2 i
" G* {  J# g1 D8 ^" ]static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 H9 I6 o: X! @+ `1 C$ i        .leds = da850_evm_tl_leds,
4 u7 k* l' W  Y6 a+ t* {: g. s$ T        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& {$ n0 ~/ M1 W" \
};
$ w, J* k, j, [1 C( v7 T$ V& x0 J: N0 x) M' a, I5 F/ e
static void led_dev_release(struct device *dev)
4 ]! [8 X9 o! ~. ?6 I6 N# X{
% E0 }  y4 n1 k" y# _};- K* F( r4 g  o

* N8 Q' e! b  d) I, Z" Bstatic struct platform_device da850_evm_tl_leds_device = {
/ V4 A. P# q+ _        .name                = "leds-gpio",
) P7 q6 k# C4 n5 o        .id                = 1,! ?( c6 S& s/ x, R% C
        .dev = {
% j6 W# m% l8 \                .platform_data = &da850_evm_tl_leds_pdata,
+ P% [0 n, `6 j$ \+ G* x                .release = led_dev_release,
: S4 X8 s" C! t; u        }
6 @, d$ j9 ]& j. i6 Y* l- U};: X) ^: n- x: z" o& w9 T

5 f- }* l8 C/ Q' w  @static int __init led_platform_init(void)
  D9 o1 p$ A5 F4 G* A* F9 m{
" T' l$ W+ p& f8 R* [: r        int ret;* r' d6 e  n- {+ M! M$ n1 l
#if 0
$ p& u5 f7 c* L. ~        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 t9 x( x& [) Q$ o
        if (ret)" k" ?" D' N' [- j# ^8 q  z/ D' g9 Z
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ a( U" J# K+ v# \0 b% y
                                "%d\n", ret);
8 q5 k+ O7 K8 [9 Z% [#endif# M& M3 ?$ n4 z& e  o
        ret = platform_device_register(&da850_evm_tl_leds_device);5 F# O, P8 N& Y* A2 C
        if (ret)+ B7 A& W$ i) }) n* N: I5 C
                pr_warning("Could not register som GPIO expander LEDS");
) L: `. T- q. ~! p4 Q        else( }& R% K* ]- [! c2 j$ N! i
                printk(KERN_INFO "LED register sucessful!\n");
, q% ~& Z7 ~3 V7 Z6 P( {
, \- x9 m: }. G. `        return ret;2 R! ]6 e5 ?# W6 w' V
}7 H1 X( ~0 j/ C5 X/ V/ d. {
( ^3 w0 e6 `9 x
static void __exit led_platform_exit(void)
# s) [3 c3 ]# I7 @  V3 N- ]{  [: u$ F. }1 o6 n* ~
        platform_device_unregister(&da850_evm_tl_leds_device);
8 `! P# ~9 _9 u' `% u: a9 F
. C  n5 ]4 Y% r& ]. M6 D        printk(KERN_INFO "LED unregister!\n");$ B& \; ?- U+ D
}
+ L! J) |, j  ?4 `8 j, n9 Q+ X& y1 e6 q4 K# S1 a4 G# @% {
module_init(led_platform_init);
: E* d. c- j: m7 lmodule_exit(led_platform_exit);
8 Y7 ?3 T% L/ I9 J/ }/ A, K, y( F5 b
/ `+ {  q- N4 TMODULE_DESCRIPTION("Led platform driver");/ C; }8 e% c# B
MODULE_AUTHOR("Tronlong");% r' z1 f; n0 l
MODULE_LICENSE("GPL");( J3 j' O$ K/ @

: k6 u+ V0 v6 o* ~: c; T0 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-29 17:09 , Processed in 0.048214 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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