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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- [6 _  Y. L1 k) A6 t
#include <linux/init.h>
* G, J7 v) W  M. y#include <linux/module.h>" E; O* G- @4 ^) n) v9 M
#include <linux/kernel.h>
! h0 t! p: M# |! h" P" ?* |+ [#include <linux/types.h>- g& s: ~# R9 T# |1 n4 r" E
#include <linux/gpio.h>
0 M" n* C) V" O0 L4 E9 @1 K#include <linux/leds.h>' U" t1 n* X5 z* t" O; `6 D
#include <linux/platform_device.h>
. u) J! }1 {4 |7 q. n' f  V, H9 n$ O
: t( |% d1 y: r) Q7 O#include <asm/mach-types.h>$ u) n3 L+ p3 c; ]. C0 k* i
#include <asm/mach/arch.h>8 }; \! k+ G: U  E
#include <mach/da8xx.h>( ^) e; g0 e& ~
#include <mach/mux.h>
( D9 L$ Y* w0 M9 v* j- f4 O( J6 ^5 s& I$ B" p* P/ p
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, Q* s7 W7 u1 H#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: m* e0 Q1 A' R7 I  X#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 W5 e" Y, Z8 t( [( F8 q( ^#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) r: o5 v2 P5 B- A4 x3 {

  |' z  ^# U" C' N& G) N* ^/* assign the tl som board LED-GPIOs*/
# c1 c  l9 g5 Y; K% i& [static const short da850_evm_tl_user_led_pins[] = {( P  v0 m, H& @* ]# ?: a4 ^# c
        /* These pins are definition at <mach/mux.h> file */
# c$ t0 ^, u+ D+ \& O        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; u& v0 E% d; D
        -1
. P2 v  V, [- R2 {, z& H- Z" L};
+ C, v) {7 E4 J& m! R) M- ]% Y$ }1 ?* W4 x  `5 p) A
static struct gpio_led da850_evm_tl_leds[] = {$ t' _: u* W* I+ M
        {9 @, M: K8 v. H" x
                .active_low = 0," s# x4 ]  i1 n
                .gpio = DA850_USER_LED0,
3 t; ^9 a; t3 _# C                .name = "user_led0",
9 p/ h2 }; T! b! ~" o( _                .default_trigger = "default-on",8 j" m# B3 g1 i: v
        },
) e& Z9 m: I+ v4 e9 u) m3 ?1 T5 W        {
1 [9 S8 m; u7 H* |& k4 k; P/ @8 E* T                .active_low = 0,; ^+ }5 D3 J8 z* ^2 C
                .gpio = DA850_USER_LED1,  e( _% n& l& @, q3 R7 l
                .name = "user_led1",
) B3 M6 O- v" T) L& _# z                .default_trigger = "default-on",
% y5 X9 a% p4 d        },
0 s# L* @# _: u  E        {
" J, ?7 w9 ]  M                .active_low = 0,
. V$ `" }+ B) Q' p8 T$ x' d                .gpio = DA850_USER_LED2,
+ V% g. y- U/ u                .name = "user_led2",/ K, `. o- H0 f- I
                .default_trigger = "default-on",/ O# L# q4 i4 L% P0 \3 w: b
        },9 _5 {( V% y; l+ p: g6 j
        {
2 T7 l6 H, @% q9 u# h$ X4 D/ A; u                .active_low = 0,
( J% W  {$ V1 U! J  a                .gpio = DA850_USER_LED3,
0 Y2 z  m/ y8 \5 C. C* l9 i5 y                .name = "user_led3",& U0 |4 M8 S3 `' T( Y/ ^
                .default_trigger = "default-on",( x# y8 J9 Q8 k  n% y9 f. k4 x
        },/ ^2 n  [& r) B4 I5 d8 P, \
};
' J& N& K( n" x4 C3 t" H( ?4 T! E/ _( G7 e* Q! y  K; J5 B, I4 Q0 C
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& X5 _1 ~3 X* w) A
        .leds = da850_evm_tl_leds,, O, e% n. \* l- V- f
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ T+ Y; t; n8 ^# z- t6 p3 _
};* B0 ^$ Z$ d/ W8 D. U, X

! ~) Y: e5 U6 X7 Y3 N" p& astatic void led_dev_release(struct device *dev)
6 Y& H  B+ R; A/ K" o7 b# W5 Y7 N3 f{0 W4 T8 T/ W: d6 a9 ^! L! ?
};
4 t3 N* M0 Z, k
; n6 h  E8 {' T0 n. [3 H$ k- Kstatic struct platform_device da850_evm_tl_leds_device = {
. v( c' N% Z% ?6 H+ a8 W0 z- P        .name                = "leds-gpio",
; E: [- p6 a  X        .id                = 1,7 X# U3 |5 g( T5 |4 P3 X
        .dev = {
1 L* g4 w/ S% j1 W  j3 B                .platform_data = &da850_evm_tl_leds_pdata,! c7 T! |; n0 b% o  h+ e
                .release = led_dev_release,/ ~- |9 V( ~: v2 ]2 K3 N; I' F
        }; w& I! A! A  q9 R' V
};% L( Y  _( N4 x5 Y( k, P, @

; ~0 B( J9 B5 M: sstatic int __init led_platform_init(void)& t8 w+ A; H4 M) s2 M
{% I+ I$ _. {8 v  z  o
        int ret;+ t1 P0 W! O! C5 Q& e. k% v  w+ V
#if 06 i+ v% ?. W! Z; h( i; g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# K+ \; z  W0 ]9 n$ i& }: [% Z
        if (ret)
5 m# ?) k& K* K# ]3 N3 S: p4 t5 o4 j                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  b: x4 e& t* {( e9 _+ N
                                "%d\n", ret);4 r+ \" ~4 u* H) W
#endif0 t' U5 Q, x: B4 F( a
        ret = platform_device_register(&da850_evm_tl_leds_device);! v' z( M0 T- F
        if (ret)
+ e, W+ Q' y5 C                pr_warning("Could not register som GPIO expander LEDS");2 \5 T7 ~1 X7 R+ x# x+ |; m0 }
        else
9 k) `6 b9 [, u. x+ R                printk(KERN_INFO "LED register sucessful!\n");) E6 ^1 }  Z( b. l+ N! G2 ~$ m

) C3 h. v' f$ F% [; |  {        return ret;' h3 {) f8 v2 n1 k( l% T
}6 i# W5 J# u! D

+ O6 e( S) d2 B7 j: j1 i: bstatic void __exit led_platform_exit(void)
# c7 l3 G" e+ e8 z6 g7 r  R{
: ^8 ^7 B- y- e$ J        platform_device_unregister(&da850_evm_tl_leds_device);0 L/ @6 l4 i/ z3 X6 \: h
" O1 k" J( V" \
        printk(KERN_INFO "LED unregister!\n");
3 a! y% A! |5 o, U$ _}
1 ~; T& b4 ]/ `, B- \- W3 T( d' |* k% t# }. v& y' T
module_init(led_platform_init);+ P1 L# x$ p, {5 [
module_exit(led_platform_exit);! t3 j# h. |9 U+ i# s+ j1 s, [& c
9 T+ V$ [1 W' B
MODULE_DESCRIPTION("Led platform driver");0 ]/ a! P2 Z/ a$ }; F, Z; O
MODULE_AUTHOR("Tronlong");
- x1 g3 Z& V) ~( B5 Y: I& FMODULE_LICENSE("GPL");$ t- Z3 [9 T  b! I& t# j

5 N% P: W" p' T( i/ n4 o% P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-14 11:51 , Processed in 0.038006 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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