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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 Z7 S' y% P6 P
#include <linux/init.h>
8 W6 g: f# }& D  @$ d#include <linux/module.h>
2 h7 j3 {# N# Z6 [& V#include <linux/kernel.h>( O4 A- J2 L  I7 C; c( ]
#include <linux/types.h>' Y) W1 z* C. _/ B) O% H
#include <linux/gpio.h>! K% s& l5 V5 ^( D- D" G
#include <linux/leds.h>
" Y  \. q. f5 P- ~# }; o8 P#include <linux/platform_device.h>1 n  L6 G, B$ Z4 D1 q+ E
. ?/ z6 N+ z: p! k# u5 U- R
#include <asm/mach-types.h>6 \' |8 E/ R: p% l( N
#include <asm/mach/arch.h>& p3 E! c% a& t8 {4 w, k. H( T
#include <mach/da8xx.h>
" u6 Z, N" M  f$ r% I#include <mach/mux.h>- w) o& V, e, p0 |2 P8 j; x

5 N0 g- y5 ]* R7 H3 T+ L4 `#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& D5 a" [$ W% ~3 V: k, d#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 R! J, Z1 o: I6 F5 [#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% c$ |: W! l+ s; h: [' o5 m2 G
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 o' p( F1 `1 |+ ?& k, e/ e: ^+ p
: w! i3 F4 Y& l2 R8 {3 J
/* assign the tl som board LED-GPIOs*/3 L) o6 R) t9 d+ i! e
static const short da850_evm_tl_user_led_pins[] = {% L. w& O/ L+ _* L* D
        /* These pins are definition at <mach/mux.h> file */
. g5 t7 a& a  D% j- k5 _  M        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 u1 }0 h, g& B( h4 L' n3 X
        -1
/ {% H4 y" [2 G+ S& J& J};7 a& ?1 H3 J2 O( M

- I/ K; y: z) ~  [static struct gpio_led da850_evm_tl_leds[] = {
% n5 O0 t- K+ K6 j        {
" t" H/ M9 _5 X4 A' Z3 D                .active_low = 0,5 f( |1 u; S' _1 d2 d8 b) U' R4 g& ^
                .gpio = DA850_USER_LED0,* \8 t" c$ S( Y6 L* M
                .name = "user_led0",
! J- ]" Z3 t5 i% e6 g3 B                .default_trigger = "default-on",1 E- C* ^$ ^! [) n; |7 ~2 H
        },3 B! }! l6 V# _6 L
        {7 E6 a* C, k3 S( e2 ]3 p" l- c
                .active_low = 0,
  p4 k/ t/ Y9 G8 J3 C! v6 c                .gpio = DA850_USER_LED1,
  {8 r0 E1 {& {9 m                .name = "user_led1",( T5 t: r, n) t+ w7 M
                .default_trigger = "default-on"," }' y5 ~  {5 G% U! l2 w! q, z
        },
( h; @& f0 @4 i$ ~, p' [7 f5 F        {
2 B, h& R( y4 V& g( f: w" Y! @                .active_low = 0,
& C7 V. i1 ?/ o# l                .gpio = DA850_USER_LED2,  |- s& q. _8 d% a% G  d
                .name = "user_led2",1 m0 o# o* U6 `. ]7 `# n
                .default_trigger = "default-on",
* d. b( c& }0 c7 p2 i        },6 Y- Y) }7 m& ^  V
        {
$ D0 j! {$ K$ r                .active_low = 0,6 d3 A& z, L9 |, G! B/ m
                .gpio = DA850_USER_LED3,
, p& b7 |7 E6 T! {9 q: P                .name = "user_led3",
; C- D2 E1 \# ~- @. A" j                .default_trigger = "default-on",/ r$ l$ |* W, ?* V! g
        },
% k! W4 v3 G$ A. b};
2 V! X9 U7 O* C: W+ [* h1 N6 e" X& D
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, |& A4 p5 e" w3 k1 ~7 E: U        .leds = da850_evm_tl_leds,
( K& _1 U! X9 Q, l: A        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 O/ L; G: Q' I};4 W; _5 O8 U; L

  [6 j+ W  W- k! q* L- Y. d- y5 @static void led_dev_release(struct device *dev), U) f0 H: |$ v
{
% d1 I% X/ a' _3 ~9 z};
3 M% ^8 }5 X, t9 A
2 h' X7 {! P- S" x! Dstatic struct platform_device da850_evm_tl_leds_device = {
3 u' H# `8 k( `- m& `6 ~        .name                = "leds-gpio",
3 ]2 w/ Q, f2 y1 U' l5 I        .id                = 1,
( \' e& _: w) y  S" {8 n        .dev = {7 ^6 q/ Y' T% j$ ^  t3 B1 @
                .platform_data = &da850_evm_tl_leds_pdata,) a$ \. c& [# P( h6 I
                .release = led_dev_release,; p( J; [& U) a; L: X
        }$ ?5 P) z* B0 g- A; R0 }" C9 B
};6 F- V) A0 l) ~5 {* k, y) d0 f

3 T9 a! l! |# S& jstatic int __init led_platform_init(void)' B# ?+ B. ~" ^  ~
{
  w( a0 _) N, X! j% r/ |$ y  |& q        int ret;$ D( N) r, m: c: L4 r$ m" z
#if 0; ~& R) y5 D5 b
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 Z) c$ Z5 r0 s, K  |0 F        if (ret): I. C% t$ j/ D; R9 {4 }4 p" T: \
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; q: ]8 z& j/ K- _" H                                "%d\n", ret);
3 Q( h! O3 I# l1 B#endif
+ K7 h3 }; h+ ?6 b        ret = platform_device_register(&da850_evm_tl_leds_device);1 G" n/ o/ f& n% D$ V: v% P5 D
        if (ret)$ d' J% D# S8 g' H6 d7 J6 M
                pr_warning("Could not register som GPIO expander LEDS");
7 L- O( |$ a6 e, M9 h& [        else4 f! w) \! Q+ {+ m+ l5 S
                printk(KERN_INFO "LED register sucessful!\n");
5 F% Q- L, d8 M$ Z* q8 Z: W
  F& z8 ~- e7 Y+ Z* Z% i        return ret;
$ L8 O+ f  r: f  {; [) A}
( d9 g- {9 B$ `* ]2 O0 S4 O, N' O: ?) `; j' H
static void __exit led_platform_exit(void)" W, n: F; \& A/ j5 O: M" T  k
{$ f$ d9 e; F- m
        platform_device_unregister(&da850_evm_tl_leds_device);
* h) M' ?/ P5 q: I+ W" s
+ S2 V  T3 b5 L, W        printk(KERN_INFO "LED unregister!\n");- C9 {7 m( j" i, O  }2 P/ S
}8 J' m! L- R, q/ z( d
) Q8 r0 _) b4 Z- ?" D+ {
module_init(led_platform_init);- p  \7 E) K! d9 H# i
module_exit(led_platform_exit);
4 A% O8 W, h( o' m. c
  k* I9 c; g( x2 zMODULE_DESCRIPTION("Led platform driver");6 L8 k3 J1 K) F8 ~  g
MODULE_AUTHOR("Tronlong");/ C& h: Q7 e9 ?  }7 V, _8 P
MODULE_LICENSE("GPL");1 ~% V2 x  x  f. \

& E% k$ I) Q! k0 L4 C8 w5 `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-7 23:08 , Processed in 0.039524 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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