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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! A, S( k4 {4 R9 o# u- Y#include <linux/init.h>/ t, A/ U" y+ b3 z9 C6 n7 b
#include <linux/module.h>
5 B- }: C! _' d/ p2 Z+ p! e/ j#include <linux/kernel.h>
. Z' S0 q$ i/ S# x5 j8 a& D7 y( [) y#include <linux/types.h>
1 F3 \1 V- s# I9 E: M! \: P#include <linux/gpio.h>
! e' T; ?6 Q; N& {3 ]9 o#include <linux/leds.h>2 G( F" Q- s1 K" g. H6 k- ]1 F- ~( s9 l
#include <linux/platform_device.h>1 p3 r: x  }; T) t! a& r% k7 H
6 H% |9 E7 ?" `1 ~
#include <asm/mach-types.h>! @; N* ^7 W/ z: H7 `" O5 n
#include <asm/mach/arch.h>; u: Z5 Y1 Z: C' c' u
#include <mach/da8xx.h>) m! c! f7 s  @3 V. ~* w$ |
#include <mach/mux.h>$ U) n* D8 D  `9 G& r3 M

9 V# G- l  E% N- Y+ A#define DA850_USER_LED0        GPIO_TO_PIN(0, 0), J- P" t, |/ K6 b( v
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 D# W* N$ I* \) ]5 T  Z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 e7 u# a2 Y: s* B7 n
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 t. a' R5 d/ i1 r/ {6 `

" h& h( y6 C) d5 }9 o, j/* assign the tl som board LED-GPIOs*/
9 B* @+ i1 p8 U% sstatic const short da850_evm_tl_user_led_pins[] = {9 i& E! F% z; k
        /* These pins are definition at <mach/mux.h> file */
8 m; p8 f* K5 ?3 o3 G        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! I( q9 C* r+ K0 r% z) b# r: [) c9 R, L
        -12 m2 w( d( \" }/ x
};
6 y- ^# ^, k2 U3 N. {
, T2 U7 L& ]2 hstatic struct gpio_led da850_evm_tl_leds[] = {/ U8 b/ T% g+ L9 g" _
        {
1 O" H* l7 n7 [( I                .active_low = 0,
9 D$ g4 _; J' j3 a+ {9 `                .gpio = DA850_USER_LED0,* `& e' O/ ~0 i$ J5 l
                .name = "user_led0",& ^5 H+ F8 |1 C, Y) _: c& L! L/ F5 R
                .default_trigger = "default-on",& \/ e, V( g" E6 p
        },
2 t2 C, O5 W# M& U        {6 b% o" k7 n) e8 G
                .active_low = 0,1 I# I+ x  p4 Z  o
                .gpio = DA850_USER_LED1,
9 z) `9 B- E* O& Q5 e6 c% V                .name = "user_led1",# W9 t" i! y# W3 X- u5 _$ w
                .default_trigger = "default-on",/ I4 |7 \% K. o( t2 m
        },
0 E& D2 y% L3 w- E$ G7 K+ E        {
8 B! U3 ?( h% M& \7 d1 T                .active_low = 0,2 ^' z2 u" m2 K0 ~* @+ p( A
                .gpio = DA850_USER_LED2,
  w9 G- a4 v) Q( R% I                .name = "user_led2",7 `$ r* E. h( t) G% C1 {: e
                .default_trigger = "default-on",$ \# E1 ?2 T* }) I6 x* x; V
        },
( x& U  \: K% v. c# u5 f        {# Q( g- Z2 }5 ~8 l. H7 J
                .active_low = 0,
5 S, z6 V; {& s; A2 {( f" |                .gpio = DA850_USER_LED3,9 r9 k2 w9 L2 H  b) }& E% k! y
                .name = "user_led3",: K7 \% d/ k% j; M
                .default_trigger = "default-on",
# a* ^3 o3 @2 t1 ~1 H! [: {  W        },, {( Y7 `) r2 h3 t
};
, B5 \" r' O6 \( [4 y6 f: u0 L/ ]+ Z; n2 N& ]
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' @# {% r3 T  F
        .leds = da850_evm_tl_leds,  w' w( O/ N% D& e- c
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ U, Y; b) t- @' r
};
3 X- T* w8 t- q. }- t) V# N. Y- k- ^: T1 Y% n
static void led_dev_release(struct device *dev)
1 I  M9 V: U% ]{* b1 r- L! }! ~$ i* s6 d
};
, L- o7 V/ k9 N0 \/ w, N( Y3 e# ]' M: X) c1 _# v& v
static struct platform_device da850_evm_tl_leds_device = {! A0 ^( k# _" Z( d$ y0 p
        .name                = "leds-gpio",
2 i" _' p$ m2 s7 s" w        .id                = 1,- T( p$ L0 T& \4 l. y. Y! b
        .dev = {
6 E$ v$ c6 B/ p* X                .platform_data = &da850_evm_tl_leds_pdata,4 y( O" S- v( J$ [! F& H
                .release = led_dev_release,
) N) W% J% N# K1 A- p1 U        }( D5 C( c( |+ o8 i( C1 m
};$ l( R: s2 v1 g1 J3 I1 M
  d2 g, L) e1 M( x! e5 c
static int __init led_platform_init(void)' L5 H/ E9 |3 v0 L8 C0 V
{  |  _1 G& p+ P/ ^' @
        int ret;
3 G2 b$ s* J0 N7 K) u, r. E#if 0% N7 ]9 F! y( y. V; U2 I( }
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. F/ ^) F$ ~  d0 y+ T        if (ret)
- [" ^( [: J/ n: F                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") h9 g; u; {# c! f4 k
                                "%d\n", ret);
- R; G' j, Y0 y#endif
" d7 ?% z7 j* o% H        ret = platform_device_register(&da850_evm_tl_leds_device);
" T% l- n4 t7 A0 W/ v4 H0 e+ X: y/ X        if (ret)
) w" M& S6 d7 X+ j                pr_warning("Could not register som GPIO expander LEDS");
& O1 F' B9 A3 r# M3 E9 z        else8 v7 k) @, C8 f6 Z" V
                printk(KERN_INFO "LED register sucessful!\n");* u8 h; k! ?0 f3 c7 \+ @

) q0 [7 T/ f; d: X% I. ]/ I        return ret;
; ]- o7 `) t  P. \}- V! g, L% j6 A
7 ^- H8 R7 J# \- j4 Z
static void __exit led_platform_exit(void)
. r  v# J6 r+ E# g# w* g{* x, L' r* C& M, E! t2 e0 ~
        platform_device_unregister(&da850_evm_tl_leds_device);
5 p, H) v0 x3 l" {: q& y5 s" x
* c& j* w- Z# b- }6 K        printk(KERN_INFO "LED unregister!\n");
0 f* j3 x5 d2 e% g& N; R, R* I- p. T  y}0 x0 f! R/ }4 H. c& c7 d0 P
( v) R3 V7 |( T8 U6 f) F% P$ m
module_init(led_platform_init);: u! _. X! F$ n* B* q
module_exit(led_platform_exit);
% k; b  T0 y' u+ G0 x
2 m! z9 L/ S0 ]/ o3 [$ LMODULE_DESCRIPTION("Led platform driver");
; f; O& ^/ C" l5 Q: l8 yMODULE_AUTHOR("Tronlong");
/ e3 a! Y4 R9 x' r$ c5 NMODULE_LICENSE("GPL");
# X, {# ]! A. Q4 O" b2 B
- @- i! O. P/ Q# K0 Z  i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-27 16:32 , Processed in 0.039704 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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