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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。5 t  a6 F! k4 K
#include <linux/init.h>
" E* r; [  H) [, Y5 H5 K1 F#include <linux/module.h>
2 g$ N! E, U& B  E3 X: h4 D7 T9 v#include <linux/kernel.h>* y9 E8 W' t/ w: e4 |
#include <linux/types.h># p5 _! w1 C* g& o9 }- ?0 ~8 {
#include <linux/gpio.h>; o9 Z- m8 z) ^, l2 _$ @) ~+ j
#include <linux/leds.h>, B3 D7 F) _- S1 g
#include <linux/platform_device.h>2 ~* w' D  _  Q: L# ]2 S( R0 s

6 c( J1 c# Q, X0 \. T" S+ M#include <asm/mach-types.h>
$ w, {( l% Z+ E#include <asm/mach/arch.h>
0 K9 s& M* O, ?+ @#include <mach/da8xx.h>
+ ?6 D8 f: f1 d. C& ^#include <mach/mux.h>
: s# e/ o# W# q+ a/ `) _
/ ^4 C. R; z1 c: j+ m1 s#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: |* P* q1 t/ `( a9 m" p8 {#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), A- ^0 n' o# \
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# Y- n" ^! E: i0 \, @, `; c
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) E0 s( B2 B4 Z! S1 ?3 ^1 F6 Q' z2 J+ T# t/ X
/* assign the tl som board LED-GPIOs*/
; i: j! q6 i$ e3 Kstatic const short da850_evm_tl_user_led_pins[] = {' N3 Y' P  T4 d+ U6 L& u0 T7 e
        /* These pins are definition at <mach/mux.h> file */
- J% a; i3 w& Z- d5 C+ r        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 {9 Q# j  k$ ]1 B+ F* }        -1
! |$ l8 ~- s5 b6 ]% j2 s};
* T* X/ s( W* J: z
2 e0 h+ v, W* O* w6 d5 F; a# E  dstatic struct gpio_led da850_evm_tl_leds[] = {
( n& F0 Z" C* s+ B4 H% j, N- S! G        {" E' c$ R! c  T
                .active_low = 0,
/ g# d  f7 l8 V* w                .gpio = DA850_USER_LED0,
; A+ V) y; @7 T+ v8 |                .name = "user_led0",
2 r. j, f  v6 i. L: I% y, i# N' `                .default_trigger = "default-on",
9 i3 ?! i% ~; P- `/ w& g2 h        },
- E1 b$ B( o+ O4 I        {  U' S5 T8 t0 s1 ^! \0 x
                .active_low = 0,' f9 S- l  e/ k2 e9 D  T' F
                .gpio = DA850_USER_LED1,9 Y: X1 ^" A  W( X
                .name = "user_led1",
; \# y8 y! Z8 u) B9 G3 M! \$ Y                .default_trigger = "default-on",
; h( r. v) r: \3 a; F        },
6 T3 f1 e" p% U2 }( L' C        {
" R# J" ]3 i5 E% E4 q1 A                .active_low = 0,& F( K: _3 g7 `( M
                .gpio = DA850_USER_LED2,; T* S' l  p- L! \
                .name = "user_led2",
9 L# I5 E* C4 q. |/ p9 a                .default_trigger = "default-on"," `" e, E7 Y3 _" E6 a+ f; G
        },( I3 X% ^0 g' u2 B
        {
" t7 c2 I* A) ]: I- A                .active_low = 0,
2 }1 E9 A& z. X& Z3 Y! G# p# k                .gpio = DA850_USER_LED3,9 D2 P4 r! H# q. K
                .name = "user_led3",2 y  H% u3 ?- L; d5 P' [) w8 n
                .default_trigger = "default-on",
$ x) p- w* q; i        },* ^+ ^6 k  k8 r8 [7 S
};; g% N# O. U5 }& N
, d2 X; M/ q8 t9 z( p8 X
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" ?6 H* o6 n$ F$ }4 c  n# d, l8 r        .leds = da850_evm_tl_leds,9 X1 M' Y: O" k3 Z( \, w
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 i% f% m4 N0 t5 X, a
};
9 T1 Z+ H. b& M2 Q0 Z
  H2 X' o5 f, |. C* {static void led_dev_release(struct device *dev)
, x9 S/ O/ X3 A( R  r8 R" M{- R2 M" w$ {  Z- R! Q4 _( A7 N
};! L* e7 P. o! W" d& ]
. N( K6 l* Q$ O  u( a8 G3 p5 h5 p
static struct platform_device da850_evm_tl_leds_device = {) R5 B5 @+ d1 t) a* o
        .name                = "leds-gpio",
8 i& r( X' a# [! G        .id                = 1,
5 H6 Z7 @( c; H# O! z" S6 W        .dev = {& k& ^+ T0 ]2 D! u% y( E4 @
                .platform_data = &da850_evm_tl_leds_pdata,4 W/ o7 O$ P% q4 q& b! y
                .release = led_dev_release,
- K( m/ K4 f/ z; `0 A# M6 Z        }
5 ]/ r$ |7 ?. d0 f. S" y" ~};- ?! k/ r. l: r; ~* X6 k) l' ?1 b

9 y6 w$ v$ U* o& Tstatic int __init led_platform_init(void)
, B8 G  g/ y8 p0 u+ y+ C, x! M{
; V. F2 z1 b- Z, \- N9 h5 _* S        int ret;
, u& J6 O+ \! {) g' H#if 0
) A' x# |! W$ L/ k' X& I9 @% Q        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 Y+ l4 e% @# E' [: G* O+ R0 f        if (ret)% @: E* u6 b; f4 P/ o
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 e, \4 T- u5 X
                                "%d\n", ret);% K/ h$ v  t8 d3 G: \( }5 X
#endif) E0 m& o  y+ |3 ?: X: r
        ret = platform_device_register(&da850_evm_tl_leds_device);; ~3 [% J7 V* d- a( h- h, @
        if (ret)+ m# M1 _3 r* t
                pr_warning("Could not register som GPIO expander LEDS");  ]2 D, f7 E0 R6 x1 u, ?6 t1 L1 H
        else
' H5 j9 E% t. @/ \; C, m4 A                printk(KERN_INFO "LED register sucessful!\n");
; m! {2 P$ [9 J; H" K! a( R
2 i6 }: y5 G( @: K; r3 X        return ret;- ]& N0 a' o/ z, `$ F' e
}- c1 x2 v/ J' k) H2 r

5 V2 A* u) P8 i' w( i! Sstatic void __exit led_platform_exit(void)3 O7 s2 Y) P7 H$ U. ]
{
  J  B7 ]. U/ @4 B0 z9 l  ?, n4 v        platform_device_unregister(&da850_evm_tl_leds_device);
6 }  g2 T& A6 n
- g" V4 O( U6 k2 x        printk(KERN_INFO "LED unregister!\n");# M  }- }  V2 d2 }
}0 x# k" g- A- }6 R! O

  ^8 g. U+ R) c% O; nmodule_init(led_platform_init);% @& d& _& N& w' l/ S3 @
module_exit(led_platform_exit);
/ n6 p0 o$ Y; j7 e) R( f8 q' A/ f2 V
MODULE_DESCRIPTION("Led platform driver");0 }; J/ C! Y# o( l* Z
MODULE_AUTHOR("Tronlong");
" `5 A9 P* O- R4 SMODULE_LICENSE("GPL");
3 ?( `7 S/ V  w7 \6 {
! q, O& A2 v$ I' d! i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-19 08:38 , Processed in 0.042458 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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