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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ z8 y1 a9 v0 e( d; t' Y6 l5 K#include <linux/init.h>0 r% E0 O3 j7 c& C" z
#include <linux/module.h>
0 E' {: u. u( |0 N+ J#include <linux/kernel.h>& Z4 l5 D8 a" D1 E* `
#include <linux/types.h>! f0 H1 W  m( K& a4 [" l
#include <linux/gpio.h>7 A* G' b+ M3 n5 o6 b: [
#include <linux/leds.h>+ @' S, ?. k* n) e6 ]5 m% H
#include <linux/platform_device.h>
! R2 w9 Z8 l4 d- A& s
" l) ~" i3 H; u; M#include <asm/mach-types.h>
- V7 e9 @; I: M; T+ B#include <asm/mach/arch.h>& X8 H& w- w# K$ [$ @2 W
#include <mach/da8xx.h>4 q8 I  b/ E$ e( {+ ^; A2 w4 J
#include <mach/mux.h>
' Z9 M+ h+ V' P
+ S  u% l% _2 x: M; m#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 M. p. W* j  H% u+ a
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 p1 r0 s& I( i- b4 z; S6 }. R#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 ~/ ]5 u6 E1 ?# |, B2 S7 ]3 c' r. x
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)$ g$ c* p4 w) e/ r/ |" E

8 Y% h$ |5 T3 I  L9 }6 |/* assign the tl som board LED-GPIOs*/0 X- b. T3 a+ s  K5 Y
static const short da850_evm_tl_user_led_pins[] = {$ M% O4 H2 U( p. o% _3 x. ~
        /* These pins are definition at <mach/mux.h> file */
! v4 N$ y# o7 p        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% F/ r; D. `+ W, a( n2 m
        -14 w' B1 Z% @+ y2 p. ~
};: Q1 c0 S$ b% t

% ?, }+ m( C' V- V: Lstatic struct gpio_led da850_evm_tl_leds[] = {: Y' D5 U  A  ]1 C
        {# v9 S9 F$ g( T5 y
                .active_low = 0,
( U9 Q( l! Z& z                .gpio = DA850_USER_LED0,5 \; P( d8 f% Q+ i  ^# J  H/ b" e
                .name = "user_led0",& F. P& E9 m2 S. p" p
                .default_trigger = "default-on",
- z) ~" G- g9 R( x        },- w+ T  p( o% X, a" V0 _: r% `) e
        {
+ e) X$ r* t" k                .active_low = 0,
! n( Q/ b/ }$ m+ u" \9 L1 A                .gpio = DA850_USER_LED1,
  f% ~9 f7 g! Q$ ~3 J9 }4 y( U                .name = "user_led1",/ y7 L! g. x5 E& T- L" u
                .default_trigger = "default-on",
% r- @: m. u$ n; _$ x4 V" s        },$ x& _, I% I2 A* q; d
        {
& p1 R1 q+ F$ }; ~8 F8 _& w                .active_low = 0,6 I8 R, q0 n( j0 E- F
                .gpio = DA850_USER_LED2,# o8 B1 e) B7 \; m; K0 e8 D
                .name = "user_led2",/ c* l4 F$ P8 d8 ~, J
                .default_trigger = "default-on",
, ^( Y- R1 s& d  T; ~% {7 o9 `        },1 r$ X% g1 ~3 b! G+ n$ q3 z) z% H/ l  Q2 ]
        {
2 h7 S4 T  K* K% s# J) U                .active_low = 0,; E/ Y- d0 j0 E. p6 o
                .gpio = DA850_USER_LED3,
! P+ x; P) g( [                .name = "user_led3",
- w9 p  _; F9 g" F4 a                .default_trigger = "default-on",0 n; c+ C& \  N" T$ Y' A
        },
. L* t+ y1 e6 h  N/ z1 B  Q};
( p  v# F% H" _1 c% [) X7 A
, F/ \; W2 W) G- mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
% b: b  o8 D5 M  Z7 c        .leds = da850_evm_tl_leds,! }6 k1 T+ L1 z& s! b% @4 |
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( a' ?  f; A# B; T* N$ ?$ r$ G
};) {8 T5 x" ]. X( C) k7 X6 A6 j

2 K! K6 O8 n( i3 pstatic void led_dev_release(struct device *dev)+ F$ a) W8 D/ W( O
{
/ _' J+ H3 E  a2 A3 D4 I};  v4 ^" p+ k% A4 E# C; D4 C  u" S

3 |7 b. A5 k4 Y3 l2 R, Pstatic struct platform_device da850_evm_tl_leds_device = {
% [  N- u8 f  Y+ l' @9 Z. q        .name                = "leds-gpio",
* E& a: ?  j: {        .id                = 1,' n0 N; r2 s+ Y# E+ t- M
        .dev = {
% A% r9 h/ h: ]2 _1 u% l5 O                .platform_data = &da850_evm_tl_leds_pdata,, u4 e' s7 I8 S" ~4 Z6 f( b
                .release = led_dev_release,! S/ u1 e& a2 S9 i
        }
0 I& H$ v1 a1 G9 }9 v: t/ [1 x};
; t  W5 P2 V0 ]- t6 x" ?2 s7 e9 B# ^% y7 N7 e8 E
static int __init led_platform_init(void). v4 j& X. ~' b- f% C! o! d
{" x# ]% G  `' ]  ^. B7 W
        int ret;
  n3 e: j4 x7 ^#if 0
0 E  h8 |  i; F  p% i' W        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. P8 @- }0 \1 y7 _8 I
        if (ret)9 z) C8 {& U1 J- q9 M& b( l# t
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* V9 D8 [8 U4 D0 `+ s$ l
                                "%d\n", ret);
  _6 J: ~1 S4 s% I$ E#endif' d5 _0 y0 a9 G' }  R4 M) r
        ret = platform_device_register(&da850_evm_tl_leds_device);
6 r( k4 S1 A9 x+ F- X3 e        if (ret)- }' X. d. @7 y" T* |4 f
                pr_warning("Could not register som GPIO expander LEDS");. w3 K7 N1 k1 ^, m. o% \
        else4 p; U! `. ^9 H4 {* @6 U( W
                printk(KERN_INFO "LED register sucessful!\n");
, e& X2 o7 ^  [2 p& ^4 I, _* a
7 v. U( W3 j, m        return ret;" J, P3 B( ^$ @
}% f$ z6 k% h7 V( r

5 n! P& W5 Z7 e! g% D$ c4 cstatic void __exit led_platform_exit(void)/ A6 B- E: t! k9 h
{
) O0 N; G" T1 W0 v/ L4 l3 ?        platform_device_unregister(&da850_evm_tl_leds_device);
1 ~' J) E9 V$ P$ H
6 Y0 H8 }) t& b# K7 `, }        printk(KERN_INFO "LED unregister!\n");
; Q0 y! e2 r$ h5 Z3 {% }}/ Y9 e( _! w# }3 K

, \) l1 Y$ [8 P1 L. Smodule_init(led_platform_init);
5 ?2 f+ W2 M9 r% ]7 E! q6 a! Ymodule_exit(led_platform_exit);- x2 n7 ^& b/ r$ s( X
3 y. a1 g% p$ ?
MODULE_DESCRIPTION("Led platform driver");4 I+ k3 w+ ?: Z7 `( A/ d
MODULE_AUTHOR("Tronlong");0 o; R; ]2 `9 Y7 P/ z" V2 s
MODULE_LICENSE("GPL");; m: J, u7 D7 m% C2 E7 O1 Y

$ M# H5 w6 v) y8 E! c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-3 12:55 , Processed in 0.041732 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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