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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# [5 q* h1 G$ m0 u* b6 C8 @#include <linux/init.h>' V+ `2 O$ W7 l5 H
#include <linux/module.h>2 ^4 D6 \9 ?2 O! A
#include <linux/kernel.h>1 b. V: O' I, R) ~4 |4 u
#include <linux/types.h>
4 [9 G1 Q! ^4 Q( @" ^# `" m#include <linux/gpio.h>8 e9 ^- `; y- d, h
#include <linux/leds.h>
4 y) q" [* h3 U. y2 j' x#include <linux/platform_device.h>9 h3 `5 i# u; @+ Q6 k; [
2 s4 `+ v9 y: ~
#include <asm/mach-types.h>) O3 t6 D+ h  A8 M# v* u
#include <asm/mach/arch.h>
2 I6 r2 T- l6 O% ]" m! l#include <mach/da8xx.h>
$ [$ V" [7 G3 F# ?2 J, }! l7 L1 s( H#include <mach/mux.h>/ y6 A$ Y, Y  `4 e0 ^! v
% |% |: [' l- y. s: P
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! m! x: A) `( J5 }9 y' Z$ N
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  z, R: |) f; g4 ~3 s8 m  T  k# ?$ A
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); N6 D& N, v+ s5 k; W
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ \* ]) F; l+ G& _/ t2 Z  C
4 ?/ ?4 v; Z3 C, V3 R3 P
/* assign the tl som board LED-GPIOs*/
* [: R3 v2 G* c+ V2 H  `2 ystatic const short da850_evm_tl_user_led_pins[] = {
9 p9 Q1 |4 P. M% O2 ~        /* These pins are definition at <mach/mux.h> file */
" d$ N* r2 H, w) k        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 S5 w. U' Z( K! L6 z, C2 [/ B0 R3 K
        -1
- p3 X& M9 m% v( k- V! c7 V};
6 |. Q2 t. c- g# A# r3 G
9 g  a0 `2 b4 _8 V5 E0 \static struct gpio_led da850_evm_tl_leds[] = {
; D$ V0 N/ k7 e7 t        {' `3 g+ T  s. M9 Z, L) o' L2 t% B
                .active_low = 0,
6 g) d$ K3 e% U4 [; d                .gpio = DA850_USER_LED0,; @! T& R" b" g$ y  A8 m* x
                .name = "user_led0",
9 C5 C- N: z5 ^& h5 P4 n                .default_trigger = "default-on",& m. `8 v/ M. V& B) G. H
        },
0 u0 K" p8 T- Q        {8 t7 f0 n/ V5 }/ W3 n1 a6 r) r9 z
                .active_low = 0,
. Q1 |1 M9 n0 d                .gpio = DA850_USER_LED1,
! u, E+ {5 v: x6 A                .name = "user_led1",4 q' K) |- V& c4 t3 C
                .default_trigger = "default-on",$ Y/ e2 K- H: `% {. z( U
        },
8 A2 b+ Q' e. U* T+ ~        {9 w7 ~0 [. e4 V% i3 [" x7 k9 M& _
                .active_low = 0,8 }$ e2 _8 e* p+ d; n8 c8 U
                .gpio = DA850_USER_LED2,4 s: v1 [& i7 ~
                .name = "user_led2",5 W) @7 @' D8 z$ Q1 S
                .default_trigger = "default-on",
. O8 Y7 u6 @' m, n        }," W. M1 l& t4 e# [' I) ?8 i
        {& n% r. h4 q' h' I2 a
                .active_low = 0,
' c# d! @6 H0 k0 H                .gpio = DA850_USER_LED3,2 Y; ~+ K6 Q" a) j# m& t
                .name = "user_led3",7 E$ Z# O8 S- o. M2 R$ `2 J; y
                .default_trigger = "default-on",
3 W9 m7 @8 z4 O1 A+ d7 c        },
+ L7 k) A4 j" _- N1 B};
, q, t9 I0 B. b! G) v, q
9 K% q/ Z$ e0 B( E, lstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' g: N0 C: k4 c  y# y( t4 q- q6 D        .leds = da850_evm_tl_leds,
! k+ _: f* G* V. ~/ R/ D        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ q% o& c, \: B) S4 t! n
};9 C0 m" e2 |! V
7 V* _9 T2 C7 J, I7 M6 |
static void led_dev_release(struct device *dev)6 d; G! f- `9 y( Z- F3 {
{3 q9 ~% u! w$ U1 N, P
};, I& d+ s4 _1 w/ h4 t4 u. l& t

  w3 F( n8 F  V/ N* y# {1 dstatic struct platform_device da850_evm_tl_leds_device = {
0 g; _8 x" B+ l1 `        .name                = "leds-gpio",8 v* ]8 l# x0 z+ h& V
        .id                = 1,
6 {8 T' x3 B6 w2 ?$ |! h        .dev = {3 k) _# {1 Z& J% m# G% b
                .platform_data = &da850_evm_tl_leds_pdata,
. i" Q$ m4 r* q& Z3 b                .release = led_dev_release,
/ k* V4 x- o6 s) \        }
4 k1 C3 Z8 s  s. E7 A  y) x};
7 t( g% w4 h! I, d0 k
" e) O, o: @' J7 L# W2 Q  ]! bstatic int __init led_platform_init(void)
  }7 V5 \4 t/ |$ y, V6 f{' n0 E- L2 s3 Z$ e) Y$ d* e
        int ret;
- G2 B+ s: J5 k: x# Q( B#if 0
' l8 X, A8 C" _4 b# a. o        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 r4 ]$ ~8 ?8 N  E  F; h$ \* `0 H5 l        if (ret)  J- n: o% A# i6 _+ E% g' |, f
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  \$ ~, K, [: T( V# e
                                "%d\n", ret);
8 Q. m# g( b3 g/ E! S#endif
6 s) `/ A7 Z7 X        ret = platform_device_register(&da850_evm_tl_leds_device);6 G  R! R6 h( [$ p0 ~
        if (ret)
; q' n" J: p6 j                pr_warning("Could not register som GPIO expander LEDS");# t! u( x- b2 R3 u1 I' j( C
        else! @5 W2 y4 K: {" [9 j: S; ]# Z5 E
                printk(KERN_INFO "LED register sucessful!\n");
4 W$ U, j! U! P- f, h1 i( G8 \* \
  l8 Z" C! P* [& b+ }        return ret;
* a) {" S' }) o}
  |$ |9 x) y& `  m+ S0 K8 |/ ]5 @) W* `5 O# G0 e
static void __exit led_platform_exit(void)# o+ I, Y9 `$ }' Y- d) o% b* A# s- R
{
. E& w1 x0 D) |        platform_device_unregister(&da850_evm_tl_leds_device);
* s. C! P# w+ ~& W
* P. H) r% X( A4 \2 \- ], B  x        printk(KERN_INFO "LED unregister!\n");
; h  L; v+ v9 [7 P! }' V}
3 C( ?( R% i8 O) D8 W( m, `9 |( K2 m' f& I& B; s0 g, e! S
module_init(led_platform_init);
6 ^- d! n( k# m' \module_exit(led_platform_exit);2 F# S" _7 ~% v5 l. P

/ j7 P& Q4 K( n2 Y6 `MODULE_DESCRIPTION("Led platform driver");% R( x  j. b( M0 Y
MODULE_AUTHOR("Tronlong");
( s2 Y% _2 F7 `8 ]4 kMODULE_LICENSE("GPL");
5 U& i! h1 M9 s, K! O/ R( ?0 M7 r) s# N1 K3 S4 X% q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-9 04:43 , Processed in 0.038798 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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