程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ S! i$ J6 |+ h. J6 Y#include <linux/init.h>5 }9 D2 k6 @% }, J
#include <linux/module.h>
" M% V7 L$ l6 m+ {2 |9 ?#include <linux/kernel.h>! M# z" u. L% h% X
#include <linux/types.h>/ G% B# N5 K7 Q* |( z# l; M
#include <linux/gpio.h>; B0 o: F% ]4 n( K( X1 C
#include <linux/leds.h>
8 S! ]' \8 B& n9 L2 z/ l3 T& X  n) Q#include <linux/platform_device.h>
% M8 o, u$ ^$ U/ E/ ~8 }$ `  K- _8 I
#include <asm/mach-types.h>
) O6 L8 a! p1 U, U9 G" J+ o#include <asm/mach/arch.h>
  S. j, R7 [1 H' p+ ?! G#include <mach/da8xx.h>( c. x- p2 ?( O( r* V/ m
#include <mach/mux.h>% J% q- C% X+ H+ j" ]( o
$ q, i: x, s2 @8 Q( \6 w
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 T0 H4 K3 G% a( \: q% s#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 p  y4 x# c% M$ Y6 q. H2 m
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ Z6 o2 [  q8 G2 g  S% c. B#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 z( P/ C- ]$ c, G8 t1 l
6 I" [, x& c$ O* ]) }/* assign the tl som board LED-GPIOs*/
) k- n( v' i! i, X! @& Estatic const short da850_evm_tl_user_led_pins[] = {# ?4 T: M( K* }" Q/ u' |9 L
        /* These pins are definition at <mach/mux.h> file */
, Y& e) J, _7 g3 B2 x        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; @8 T5 G2 T- p! z5 `
        -1
4 [, F/ z" c; }+ _};
+ y' C! U+ V7 n4 i) g$ h
4 S6 s- o# X. |/ d- c) D4 X  o- Tstatic struct gpio_led da850_evm_tl_leds[] = {6 c5 d# _, D0 I9 i% N
        {1 B% j! h/ D5 D) w
                .active_low = 0,% D; N: T4 N/ _1 y, q
                .gpio = DA850_USER_LED0,' \& ?9 o2 y2 x4 L: A0 p
                .name = "user_led0",+ ]. c1 l9 M9 ~7 O
                .default_trigger = "default-on",
! N' Y, s# N2 \  O1 y; u" `8 ~( [( w        },
  E/ r6 `: }  Z, \        {: B# b2 ~; B( x8 d
                .active_low = 0,
, {* `% g- ?, }7 T; m  @                .gpio = DA850_USER_LED1,
; Y6 S; V1 `3 Z) M' o# |# Z# }  q                .name = "user_led1",6 C" e! @. U6 s: w4 Q: y' B
                .default_trigger = "default-on",
& w; Z3 l7 t- d& y        },$ ~) ]- ?7 a2 {8 l6 d$ a& x# N
        {
6 M' z; l( x0 `- |: L                .active_low = 0," Y6 S% R: l) _
                .gpio = DA850_USER_LED2,3 F7 X! b, B5 u6 G+ t
                .name = "user_led2",
: F$ w$ \% C2 `5 r+ d0 s                .default_trigger = "default-on",
& p) V2 |  J" z  q4 M/ g. b8 O# l        },8 X$ G* i$ @) e0 v, x) M3 [
        {
( q+ {& {5 e& H. c2 F                .active_low = 0,0 ~- E" ~7 `* w' W3 \: r
                .gpio = DA850_USER_LED3,5 w3 \# N9 p) v) V' ?! j/ w
                .name = "user_led3",
  H/ N3 D2 G# ~& x- n  c7 }( e6 h1 M                .default_trigger = "default-on",/ l0 q: ~, L, k# k2 C
        },
, ?6 W# r$ P/ d9 [% S};4 _6 l4 D  e* p) v" _

9 u0 ?/ a+ W* ], S0 N2 O( |5 V$ cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 w6 _2 L6 o& C  z6 v* a
        .leds = da850_evm_tl_leds,
$ n/ z7 c" N7 b9 k8 X        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 l; j8 k% r+ x, U8 K) G- _1 k};
$ m' l: T3 Z/ }$ w' u- e9 v& n: |+ a1 i4 @7 f
static void led_dev_release(struct device *dev)8 D  L' J, ~: I- q2 w+ K9 P
{
5 R8 I0 ^0 j0 U$ e% w};
: T' |  K% ], @- Z( ?6 f" u
9 s. Q" T$ A+ u+ f( t: _$ Fstatic struct platform_device da850_evm_tl_leds_device = {2 X% |( v# c" u
        .name                = "leds-gpio",7 w+ T& [; o7 `
        .id                = 1,
4 a0 m9 q' m& \        .dev = {
1 v; d5 ^* w% c7 s+ }  y4 P                .platform_data = &da850_evm_tl_leds_pdata,
* y8 I8 [7 q: h5 ^) X- T                .release = led_dev_release,5 @- J) z$ D7 f
        }
+ f3 e$ ~  G. d& v};
& y" \* @! V3 R2 U
0 w! Z5 e+ U+ w1 Xstatic int __init led_platform_init(void)$ J+ p5 w2 P( Z
{8 j$ U) o% j! M2 r3 r
        int ret;
% O: j; w* s  k. e# U#if 08 T# u$ C+ s, }5 i, F
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 V: x/ @9 T* F5 e, s' M9 i        if (ret)9 j+ P% a  @; ]* g
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 v6 K9 `: T6 ^% Y- v1 `- q
                                "%d\n", ret);' Z. x/ s" V  a& I9 D: A5 m
#endif3 S' }& ~" U, Y  ^6 ?
        ret = platform_device_register(&da850_evm_tl_leds_device);
" i0 ^) Y+ R( a) `' i" d        if (ret)
' w' b  n+ e1 i5 i* U6 v/ y! _/ k7 I. h                pr_warning("Could not register som GPIO expander LEDS");8 J$ m" G  m" a7 L8 `
        else, Z. G# c; g7 C9 }4 s) I' F
                printk(KERN_INFO "LED register sucessful!\n");; }+ T9 l( \0 H# p

* ]! h$ ?9 L; |$ c& \, Y        return ret;& }  L& @% b! ]
}4 V5 W: \% k. ?8 o4 t/ M1 Z

6 v( w2 }6 ]4 e; @static void __exit led_platform_exit(void)
  D/ Q8 F" c* H& [) B) x{; U$ ^; P0 u; y0 v1 m- N
        platform_device_unregister(&da850_evm_tl_leds_device);
, A$ d  s7 g* X! X& s
! s" k! e1 b0 T) z        printk(KERN_INFO "LED unregister!\n");7 l* E: m/ C1 E) [2 m. A/ I/ ?
}& R/ a$ c( j; e
. \7 C" n- g$ U/ i5 Z: p+ l- |
module_init(led_platform_init);- u5 c! K- n2 d& `* @$ X: o
module_exit(led_platform_exit);. F0 \5 ]. \/ b
; D! |8 M1 u8 a
MODULE_DESCRIPTION("Led platform driver");2 L' k3 P5 N9 o
MODULE_AUTHOR("Tronlong");
$ _* J4 I0 c+ n* wMODULE_LICENSE("GPL");! y! L4 T: \, c: |$ P) j2 B# F

5 ~9 N7 Y7 B1 J# e8 {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-14 15:01 , Processed in 0.035974 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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