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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 r8 U* B7 F# |6 p  D( h#include <linux/init.h>2 B$ f/ F: s, v
#include <linux/module.h>& E4 M9 H! o% T6 N- \: o
#include <linux/kernel.h>
/ \. r% \: O2 ]1 }% w" ?$ x#include <linux/types.h>
) B! W, n8 n0 [; R5 E% j#include <linux/gpio.h>7 |' I' w$ m9 C* O
#include <linux/leds.h>/ ^+ Z; n/ K. b
#include <linux/platform_device.h>
7 e, S* U2 j& H' y1 ^/ m) |6 C" w1 J
# h9 s. F( v; P+ c4 E6 K' g! U#include <asm/mach-types.h>
# J3 h' [, m( |4 f; l! Y( U#include <asm/mach/arch.h>
  R& Y) O3 s8 T8 C#include <mach/da8xx.h>% @" z( C/ j$ x7 }' ~% z
#include <mach/mux.h>( f2 a8 Z/ Q3 V, M& b
" O: J& _$ g/ Y5 N8 b
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. C8 g& L- E5 R8 K* K) p, G#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! F6 `1 ~0 A- f( o# E#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ M+ w1 f; @8 T
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ h  c) O+ b4 l7 j% `& c/ K. H* n
& r, P" X6 p( f" I
/* assign the tl som board LED-GPIOs*/
) E. u4 Y+ q( J, l) q2 Z$ ^static const short da850_evm_tl_user_led_pins[] = {% x" p% y5 z, y$ C, Z7 a. \
        /* These pins are definition at <mach/mux.h> file */
' ?" _' e4 f7 N        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 o/ _( B6 |% n4 u) B
        -1
2 a8 N( t! ^5 p};0 f; A5 g; g  H. K

8 Z% R! L* u- B+ W6 e: Tstatic struct gpio_led da850_evm_tl_leds[] = {% X% `* j  w4 J+ l( V* {/ `; F
        {; h4 [( Y# p* L# H
                .active_low = 0,
& G+ Y4 j( y: G                .gpio = DA850_USER_LED0,
1 c5 I8 G) F( w; `9 d0 M                .name = "user_led0",6 A% \. Z2 j# g1 Q
                .default_trigger = "default-on",
) B& V, z/ s5 K/ {4 T  C$ v3 i        },- v& Q6 x: ]- `
        {/ _6 x- L- ~' p0 G9 }. t
                .active_low = 0,
4 D$ r/ f7 k4 h  w3 `                .gpio = DA850_USER_LED1,
: V  f5 \5 c% _6 i0 B                .name = "user_led1",) A' W2 Y5 Y9 L. f
                .default_trigger = "default-on",
# Y; C9 @6 p5 L2 E( _: ^2 E: p! V        },: _7 b+ R! }) E: a3 ?7 h
        {
) R2 I1 ]5 G' u; D, S                .active_low = 0,$ ]+ l% a/ L4 p  [" r% y, q
                .gpio = DA850_USER_LED2,
. ~5 f( f" R% i7 P1 c1 e  y$ V                .name = "user_led2",
6 F( c; E6 o1 {. }" f& b* c+ W                .default_trigger = "default-on",$ A0 v* g. z. \
        },$ j) r9 ~6 c0 u1 {, g
        {
- z/ t! B: Q  E/ e5 W7 B                .active_low = 0,
8 ^0 K& d7 }; f4 z. ]4 [' c                .gpio = DA850_USER_LED3,
2 r/ o+ y9 Y/ r/ `4 w3 U. x                .name = "user_led3",
" T7 [+ b3 J/ t  B/ \                .default_trigger = "default-on",& [! a; \: U$ ?- S3 l; E% d% e. P
        },
: e9 k2 d, F; N8 f  H9 n7 w};( x8 p) D+ g0 ^
! c+ P( x1 x' E4 |) f- N* o
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! z- j: Z% h2 b4 [5 r% t2 |
        .leds = da850_evm_tl_leds,  `5 ~8 A) o8 A) p  n9 h! I
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% ]* v6 F: ]7 @; \};0 g1 w+ C1 z  I0 l5 v  i$ M5 N5 a
, q$ A0 ~% O4 B
static void led_dev_release(struct device *dev); r1 ?/ l3 _% b7 }4 Q1 Z: s% h2 r
{
# L2 `4 a* n8 ?- E, n};
) I$ `; B, Y- @- N! P
/ y$ E/ C" k# \  j# e5 y0 ustatic struct platform_device da850_evm_tl_leds_device = {4 w! S' N2 v! O) G, W
        .name                = "leds-gpio",' h% y: u9 P" g; ?6 Y4 n
        .id                = 1,1 d7 u0 E6 h3 A% I5 J5 D2 m+ Z0 W
        .dev = {
. d+ l+ B1 K! B5 v+ G                .platform_data = &da850_evm_tl_leds_pdata,
& b8 \, o& h! [/ ]1 [' V" f                .release = led_dev_release,/ h2 H1 e2 d% }3 M7 R
        }
. A- P8 J3 {4 f' B3 p};. W1 `& N. m+ e: y( e* {7 ?
1 O1 Q* c( Z! l  i3 E+ g
static int __init led_platform_init(void)- m, v  T9 a# g9 h
{1 U. C0 G( a: ~5 o4 L
        int ret;
% R$ \# ~" M  M5 f! C#if 0
: @  s* i) _6 {; k/ ^4 Z        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 r0 F* a* H( c( c; D
        if (ret)8 o5 e7 ?; \- ]3 ~
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" N3 g$ m( g% ]) `% B                                "%d\n", ret);
* I2 D* b) t* l#endif! i. Y; a+ @9 A' I# n( U# t
        ret = platform_device_register(&da850_evm_tl_leds_device);' M9 v7 ^, S/ H3 T0 O6 I" K6 m
        if (ret)# D1 @7 K) D3 k
                pr_warning("Could not register som GPIO expander LEDS");( x" E4 J1 `2 O/ F" \' N% @
        else
9 |; f; _- _# t+ D                printk(KERN_INFO "LED register sucessful!\n");
- G9 [( B/ P6 v0 K5 m
% L! V0 l( s; j2 `- Q& t+ P        return ret;3 u0 N& ]4 g. m7 v: k
}
7 z+ K; Z5 w5 f! D/ R# o& h6 c$ m0 `6 i5 r, {3 D6 D# w
static void __exit led_platform_exit(void)
4 n* d% e  p1 ]( Q# |5 c" Q1 Q{
) C8 R0 Q  j( X# i* e. R        platform_device_unregister(&da850_evm_tl_leds_device);8 A; u" D4 t  r( t" t

! k, {* _9 S; J        printk(KERN_INFO "LED unregister!\n");7 A5 e) L: H* A* _/ x
}( g) B; U7 K9 O# y8 g8 ^
2 @7 T4 @& C3 X) ^& l
module_init(led_platform_init);
  x; E6 Q9 P: l; l4 Tmodule_exit(led_platform_exit);9 q: M) k4 z% y' {9 j. [' W- V

# ]% g4 `9 L! m4 ?6 u1 [MODULE_DESCRIPTION("Led platform driver");6 w* L3 Z6 F" t- C: ^$ `8 c  C! e8 V
MODULE_AUTHOR("Tronlong");& v! Z8 `+ p( K; V0 @
MODULE_LICENSE("GPL");! v" U+ v; Q1 h' h  C
# C' E3 P* X9 ]/ }8 {; `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-14 10:51 , Processed in 0.038493 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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