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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! I& h5 w7 q& R! `, ]- J# `* P
#include <linux/init.h>
6 P$ _% }; `$ C( l' }7 M#include <linux/module.h>
" p" u) U: m! F% s#include <linux/kernel.h>
$ p) M1 u8 j2 Y% v#include <linux/types.h>2 y/ D- E* G: l+ r( A# x7 t3 O; J
#include <linux/gpio.h>
9 ?1 q) A0 z* x- `$ g#include <linux/leds.h>
8 x2 \6 }5 Q% Z  K; K- h#include <linux/platform_device.h>* {  u$ J  F* {# u
% _  @: {& i6 e; ~( f/ T6 T% a
#include <asm/mach-types.h>
6 ^% x2 J3 I- G4 I# b6 K& @#include <asm/mach/arch.h>
" ^7 X5 J2 e1 ~#include <mach/da8xx.h>0 `5 e  G/ r" y) |$ ]
#include <mach/mux.h>
) p3 q. e1 L& h- n$ ^9 n% M9 M' _! B
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' m1 b# I( ?6 X
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' s6 I  x" O- r, G+ [#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# t$ J- E! e0 t& V3 w, p
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% |* f- Q8 K2 I' V- H' J
4 D7 t. H+ {% j) ^! U
/* assign the tl som board LED-GPIOs*/# u) h1 F, B% T& i: @, |2 T
static const short da850_evm_tl_user_led_pins[] = {( h, n7 u2 {8 H( F- J
        /* These pins are definition at <mach/mux.h> file */4 s& I9 L6 T0 W( V" F
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 h( @5 v3 d/ e( T" r) D: N1 S        -1* r$ z7 j) U# @+ H9 y" u2 {
};
& \- Y0 S  a0 Q# n& I
& m2 `8 @2 R, Z  E- H9 C0 ystatic struct gpio_led da850_evm_tl_leds[] = {2 u- A9 Q2 k" ?" t' d1 T- ?  r2 v
        {
# O+ l! h+ w+ G' s                .active_low = 0,* V" n- N- l6 D0 H
                .gpio = DA850_USER_LED0,- C) x8 N1 q+ B2 N0 v( {; g" M
                .name = "user_led0",2 _- b6 S% P* |
                .default_trigger = "default-on",
5 s( O  ~5 k2 K2 j        },. c1 P  C' ?: V0 m* s# f6 n
        {! y, }+ N  Y) i( p5 x
                .active_low = 0,
' W2 s7 p- c4 |9 o                .gpio = DA850_USER_LED1,! k) ]( Z0 s! i6 D! l* m6 F
                .name = "user_led1",+ b! }# t& @$ r' @9 ?
                .default_trigger = "default-on",
! Q; ]0 Q) `2 a: z; T4 S$ m1 V8 O" ~; c        },% P9 R# ?- f. @8 Q% a! U+ s
        {
2 t6 I4 ~6 ?" Q. x3 ~: C- m% l                .active_low = 0,- ^( X0 ~: s, {, A" `  V5 n- L
                .gpio = DA850_USER_LED2,- B( E0 m/ t" r2 P7 _$ [% m# u
                .name = "user_led2",0 u# {4 t1 L1 d1 J0 u% r: {
                .default_trigger = "default-on",
; H4 v) Q# F4 k  W6 h4 c$ }6 A        },! u* R6 B6 y$ V. F; n% f. @1 h! M
        {
6 H9 P5 h+ X- A9 b/ W                .active_low = 0,
. g8 L5 Y! v* Q                .gpio = DA850_USER_LED3,
$ ^9 e% m" {5 V6 @; u. m/ g3 W                .name = "user_led3",
/ S7 d/ c% ]2 O# R9 v8 m                .default_trigger = "default-on",
9 C  \, f! J# E' o2 M3 g* y. N. V        },
+ z; ^/ c# n* y$ n. R, {};
  Y0 H+ W$ a* P/ k
) t: G1 E# Q* e  }/ k& hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! y$ R) o% i4 H* Q' {6 }4 g
        .leds = da850_evm_tl_leds,, g7 h6 i! b. _' X) G5 P
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 m) u" J) l2 W2 a: M' e: z. ]; D! x
};
( Q7 p9 Y0 K! K; ^: ~! C8 R( y8 G. P! L- ]  I7 t/ g, U1 p1 ~3 L
static void led_dev_release(struct device *dev). M/ e9 K& W) e& p! U
{
: y1 W# X/ Q3 }7 V4 }$ s+ A};
  f& s$ p3 {4 r' S" D+ H8 ]1 n
) i1 y* s* T  W- \& N0 T; Hstatic struct platform_device da850_evm_tl_leds_device = {/ g# `# \( U& q" w
        .name                = "leds-gpio",* ?; ]' J( D: c3 I
        .id                = 1,: ^, V4 w- ?3 `; s
        .dev = {# x3 t/ E1 \% n/ q
                .platform_data = &da850_evm_tl_leds_pdata,7 N5 j/ K6 G5 F. k: Z6 \. x
                .release = led_dev_release,
9 R4 t# P, [1 ~# [: u        }, J7 L! c: ~- l# u
};: T$ ^' g' ~- e( H4 ]4 S: Z) z

" q. q! f; ~5 ]4 R% c6 k: lstatic int __init led_platform_init(void), Z/ P! e5 z1 E
{& i9 }4 R2 H; d$ W) n# t
        int ret;
; s. i# q4 C5 @* g#if 0
, t6 e. d- M0 X, }7 p" [! y9 W        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; m3 j; B8 B. m' G
        if (ret)/ j; i9 k7 X) s1 \
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 `! I2 ]7 S) ^7 x: {3 m! p
                                "%d\n", ret);( f1 J( v4 H4 l
#endif
- E; \0 l1 c7 X* `$ r( Q) {8 C; l        ret = platform_device_register(&da850_evm_tl_leds_device);
3 N& S2 E2 t" Z5 C& h8 f- z# O        if (ret): _; L; z& z& C! M4 S
                pr_warning("Could not register som GPIO expander LEDS");+ s9 l) r2 a; s% M0 }' V  l
        else" B6 b7 n- c% q* i; q& ^2 I1 B$ R0 j
                printk(KERN_INFO "LED register sucessful!\n");
  T$ e0 s8 c$ l2 T! H: P" }4 Z* i( |2 E1 i+ x
        return ret;8 m* ]( H! @8 q- J1 m
}6 r, E' t4 _; j/ x9 Y
  T+ X8 v% ~0 ~( t" ?5 Y
static void __exit led_platform_exit(void). e% E4 B$ M, M2 Z* U4 T4 c. J
{1 T9 @3 _) c: \
        platform_device_unregister(&da850_evm_tl_leds_device);  S: R% n" e1 M6 y6 y5 d
! r, Q: p: ]. r
        printk(KERN_INFO "LED unregister!\n");! f( ]* M2 t+ Z6 s. o: v* a  H
}
) A, Q: g" p$ t4 C; S  ^5 E* m5 Y
( B8 O; c4 A9 B! [( P' Zmodule_init(led_platform_init);3 K$ I8 m& H8 Q/ Q
module_exit(led_platform_exit);; v% Z' g7 L) L9 p0 Z+ C6 _
: M& c/ J0 g# l$ f
MODULE_DESCRIPTION("Led platform driver");  J, S+ d) b+ w( E. B( R
MODULE_AUTHOR("Tronlong");
+ N: u) Q8 L6 M% ]& j. k. @MODULE_LICENSE("GPL");  t0 O6 g- u& X" u

- {+ t  z+ {0 o. L7 v. e9 ?3 L
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-4 20:05 , Processed in 0.047509 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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