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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- z, N; G  @2 c#include <linux/init.h>
1 E  [$ `( e* ^( i4 n0 L6 S% w7 S. a9 \#include <linux/module.h>
2 y$ n" y4 ?7 q#include <linux/kernel.h>
3 \& {: y0 P* Z& h- ]! r#include <linux/types.h>
: X3 t" {" R& F( b# f( |! \#include <linux/gpio.h>
; `; c2 }  D5 N4 Z#include <linux/leds.h>
! u9 @" p1 u3 s% u% E" N#include <linux/platform_device.h>
8 p) i  V" N$ k( Y" ~1 P9 z: i1 d
#include <asm/mach-types.h>+ h, D2 \/ n! Z, v
#include <asm/mach/arch.h>
5 E+ E9 O# u4 g#include <mach/da8xx.h>
; F4 x* w3 l- ^#include <mach/mux.h>
5 I* z9 h) a; @9 [
# G6 E3 ]( e' Z& U8 k& |#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# |8 @! x9 D- N7 I/ c
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% |% g- w. u# u0 l#define DA850_USER_LED2        GPIO_TO_PIN(0, 1). O" S* \: w  o# h/ x2 [2 f& m' i
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 |- G' P; `( k9 j* C
& M6 k) L" {, O# m5 w7 P
/* assign the tl som board LED-GPIOs*/
( r4 x  W& L; X3 F8 R6 estatic const short da850_evm_tl_user_led_pins[] = {
" p+ y. k) B1 N. [# N        /* These pins are definition at <mach/mux.h> file */
: O. }# D* A) S  W* u: _  h        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ b' I1 n9 R. g) J2 Q        -1
  E( r9 Y( i' H' r};4 l; M: G1 K% _1 J5 Y+ Z3 V& z
0 f7 t# N& n+ E) R2 _. ]% w
static struct gpio_led da850_evm_tl_leds[] = {- s  P+ y  K7 H
        {
5 p2 ]5 ~1 p$ i3 q                .active_low = 0,; ]# H2 d% t% e8 G4 X6 O! u2 U, M) Y
                .gpio = DA850_USER_LED0,+ l: g; u; Z- b& j, A' ?
                .name = "user_led0",
9 w; @) e$ l) q, J+ x, D                .default_trigger = "default-on",
8 Y7 b* T0 L4 O# {- c+ ^        },
! i1 `) x$ ]4 U, T, P, L, X  o        {
( Z8 }2 L" C. l4 a1 i( K* \0 {" |                .active_low = 0,
) |0 a8 m  c3 C( J! V+ |                .gpio = DA850_USER_LED1,
" d0 {' V+ [. E, N                .name = "user_led1",- Z, j1 E$ x4 E: i
                .default_trigger = "default-on",
+ W, I9 p: k! X* u$ s        },
2 `2 q* k3 Q  j) B5 F( l. o        {% A% o" W' w  D; [% r6 t
                .active_low = 0,4 Z8 A  z; g8 x+ c1 C
                .gpio = DA850_USER_LED2,
- J+ u5 a4 {6 C" E4 D4 `                .name = "user_led2",
) i2 ^0 J4 b  w' x                .default_trigger = "default-on",
3 q) Y0 p* U; c; L  K- H, D        },% O/ ?9 r3 @+ g( O+ M/ N
        {: A9 I3 |0 u0 j
                .active_low = 0,
' q* E* p3 T: i9 N1 z& p                .gpio = DA850_USER_LED3,
  i5 }* D+ w* z                .name = "user_led3",7 Y5 d+ x+ {6 e! i8 T/ i: b+ f
                .default_trigger = "default-on",2 n5 n" a% _- |% }8 J; K* _
        },& G1 h$ o! e: }  N/ R3 ^* ?
};! J! o/ `0 Y" L- a8 X7 g

( @/ R  X9 x# ]8 v6 q0 z* [9 j  ?static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( [$ I0 F$ `0 T. r        .leds = da850_evm_tl_leds,5 c" M. X9 }5 r! a/ O' ?
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ k4 W6 P7 Z- X$ q- z};
3 V1 U3 F8 X1 }* W8 ~, g4 \, V" H7 I" L& M9 R- t& Q  ]
static void led_dev_release(struct device *dev)
! t+ U% u2 K/ B" k# W$ c{
( d2 t( k; t# o& M  [. w/ Q6 J};
4 e3 _5 l: H# [" c
  E6 N3 B8 @/ m6 F4 ustatic struct platform_device da850_evm_tl_leds_device = {
, X7 j/ \- I7 ?  h0 o" L        .name                = "leds-gpio",- f6 k  D9 U4 u: K
        .id                = 1,
0 b% c! w1 U1 Y        .dev = {
: X2 G. \5 }5 L: L# d                .platform_data = &da850_evm_tl_leds_pdata,
9 ~- l$ O; m) W$ Z                .release = led_dev_release,
4 ?, T- y9 A! T! X; g2 B* R8 A        }/ K, Z) w. d+ B+ T7 [) W
};
4 q& P6 _* Z/ }% m! i' |
( h) b3 q) j. ^6 N# Gstatic int __init led_platform_init(void)
1 e1 `# J- r8 Q{
$ i* l2 L0 [* q5 n        int ret;
* I+ X  x" {  D% y8 f* m( K#if 0* t4 y' a! D$ _) i0 \
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 o7 }  }  h  Y' ]2 |
        if (ret). ^: T+ Z( a9 N
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! V, |+ e/ p. H+ q3 `6 N                                "%d\n", ret);
, \; l3 O3 b: |# N, E2 z, [8 X#endif2 g  R( W  s/ a3 u. B  r) c1 _3 @
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 ]7 d' g8 e. T  h  `% @        if (ret)& w# ^) G" ?: i* E' v5 _- _0 j; r: L
                pr_warning("Could not register som GPIO expander LEDS");: O: K- h% k! o9 Z: L
        else
: F( R$ J3 N  z, H1 V* B                printk(KERN_INFO "LED register sucessful!\n");& t& ^# H3 k; E. l) W

. X7 i9 F, Z$ {4 i        return ret;2 v4 i2 X$ \  {7 k$ b
}6 k; y; a5 L  ]+ ^" P3 _) \: j

, D+ p; u8 C7 [7 P' h4 n' I" |3 Gstatic void __exit led_platform_exit(void)8 ?' O0 e4 r' d8 x. O& _0 q
{, d7 R3 i7 k, d4 n0 ?3 B
        platform_device_unregister(&da850_evm_tl_leds_device);7 g' a- k) i% J4 n8 |1 f7 h) `

) R: r9 Y; Y$ ]) e8 G) @& i! M        printk(KERN_INFO "LED unregister!\n");
8 s9 u2 n7 d4 l  O8 D, K}0 ^' Y4 U! T9 `1 U4 |. p4 m/ i

. V- t" J  s- Jmodule_init(led_platform_init);
6 [) n& o  _$ ^! s, |, hmodule_exit(led_platform_exit);5 w& {. c" ^! l- v& v' F+ t' ^
8 p( k1 F2 ]: ^& V' B4 j( X
MODULE_DESCRIPTION("Led platform driver");( z( m4 ?" o5 p  I% p6 C
MODULE_AUTHOR("Tronlong");
7 n; ]& J7 Z: P9 x$ w( O6 lMODULE_LICENSE("GPL");
. p+ s* ^1 |& _" b# D. m
& ~) B4 k, k5 [/ {) {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-10 16:43 , Processed in 0.038823 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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