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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。7 Z* ?! L. M$ A" S+ m/ j
#include <linux/init.h>% ~1 v1 y- M$ F+ r( d
#include <linux/module.h>0 K' U* y4 ]5 g5 O
#include <linux/kernel.h>
: V# }' g% P' W8 W#include <linux/types.h>
7 W. \: K; ^% A4 m4 k#include <linux/gpio.h>
5 ?0 b& Q) I. ~* j#include <linux/leds.h>
5 U* a6 g$ y. x9 D6 t: v#include <linux/platform_device.h>
0 m3 o  a- T$ t- T* l! @/ w4 v# z" m! A
1 o. {" z) V$ H& D  |#include <asm/mach-types.h>
; ~3 C: z! F  y6 l$ t7 l4 g#include <asm/mach/arch.h>* u' R; L" Z6 }6 G* O
#include <mach/da8xx.h>
0 G0 y4 ^! g% F, _1 r#include <mach/mux.h>
5 Z6 A8 {+ k6 |: }0 p
/ Q7 b; q! ~' o( G" [2 y1 P#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! g& Z- V' k( W
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ n' E: e4 {) G. v- J#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- B2 y( H( s. G' d6 m3 `#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, R3 n  z4 _/ }" M" e& y
  }7 ?" p: O" @5 z9 n& t/* assign the tl som board LED-GPIOs*/
/ Q6 N# j- n# _0 Z4 d3 Z- w( Bstatic const short da850_evm_tl_user_led_pins[] = {
, C# j  T. L' [$ ]        /* These pins are definition at <mach/mux.h> file */
4 r( ]& ^; Q2 C; L        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 k3 H) f0 @2 }( v
        -1  b$ Z' g- `8 m3 w( I
};
+ C* |% j; G) t# f9 H' z0 o( K
8 x  ~* M% ~5 C. Jstatic struct gpio_led da850_evm_tl_leds[] = {
5 f" K' y5 ]6 m. A0 w        {
  r6 b: X3 a" O4 M. l3 Q) Q                .active_low = 0,
) r# C2 H: a" ^' J                .gpio = DA850_USER_LED0,
& @1 ?& O- I1 z2 @                .name = "user_led0",/ P# R: |- j7 L" L+ f; I0 }  I
                .default_trigger = "default-on",
! @1 r$ V6 f6 @( ?0 \        },
$ ^& U- d9 i" \' k% l        {
- ?% m  t1 S% s2 A# a- ?) N( ^( `                .active_low = 0,
$ @3 H+ A# S! @0 V# X                .gpio = DA850_USER_LED1,7 ]. }; F- Y) I+ r' I, @0 ~
                .name = "user_led1",, ^6 G" C8 ~$ F/ G2 Y+ S' g
                .default_trigger = "default-on",0 n" X7 x4 A! S6 Y  V2 [$ r5 o
        },7 i6 Y/ g' J! k. \3 W5 R7 i3 t
        {0 R% E& u6 m1 z. t4 A  N8 z" f
                .active_low = 0,. [9 _8 y  ~. H% x8 U# k* T& y
                .gpio = DA850_USER_LED2,
) N+ X# K8 Y0 W5 F# v7 J( F                .name = "user_led2",0 S$ h0 {" \  n$ v9 b
                .default_trigger = "default-on",
9 I/ u) D, }7 Z6 d. S& Z        },
9 F: H2 L. p; d: f        {9 O- M) o! T: ~5 g7 l! Y+ I! L7 G6 p
                .active_low = 0,, l* X7 I9 k2 X  p
                .gpio = DA850_USER_LED3,
" x/ Z$ i% G- Y% N, w6 n                .name = "user_led3",$ \; _! E" A+ i  L
                .default_trigger = "default-on",! g$ n4 g2 V* `* H+ J2 H: Y
        },
" l0 W: h) Q* A" p0 |};
+ W6 k9 s5 l2 I6 [7 e) Z7 f: z- l4 s& i: h. F5 l* l1 s, ]
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! F3 ?( w# q  i! F        .leds = da850_evm_tl_leds,) w1 E/ J$ y5 v- s# E" [* g
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& z6 U$ H- ?+ ^* @3 C( ]: ^
};
1 u( Y0 J2 V9 H4 C$ A! D
. t+ k8 y5 A$ N+ n( Y3 y1 Zstatic void led_dev_release(struct device *dev)6 U  [- e4 K  g# J
{
; p/ P: i, }& ]& O! Q# S6 v( F+ m};
! f1 j( f5 P9 [, S- E4 t8 j! Y2 \# n
static struct platform_device da850_evm_tl_leds_device = {- ?* c9 r  x7 r9 R
        .name                = "leds-gpio",/ z/ \. J4 T9 d6 ~0 Q) D
        .id                = 1,
7 \7 v! w4 m3 E" f9 }        .dev = {
: _. S" A* O* e2 L4 M  \5 r                .platform_data = &da850_evm_tl_leds_pdata,% D" h5 S8 t2 d7 a
                .release = led_dev_release,3 y: s- B0 R! h5 [
        }
" Z' @3 w* {  P6 C};8 _. P  j+ g" i! j6 M$ i; o7 K

% T' q# `% b/ z9 h2 h2 `' {static int __init led_platform_init(void)/ k% B( O/ X- v, ?3 B
{8 O  Z- K3 J" A; h1 w
        int ret;* {7 u$ [5 ]4 g; m( D
#if 0* _" Q7 F2 y* m9 u1 C! ?! i
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; P: E8 l% @5 L9 a$ c        if (ret)
% e6 Z# p1 f% z+ j! N                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# S& H, m; x( i                                "%d\n", ret);
9 G2 q/ E2 E9 X#endif$ _8 g( Y+ k7 |0 T; O' g6 D
        ret = platform_device_register(&da850_evm_tl_leds_device);7 k6 o3 O0 S- o& I6 r3 X) j
        if (ret)
2 j) D/ p- E) [0 |, o" u5 t- F$ X                pr_warning("Could not register som GPIO expander LEDS");* a; Q. b" i8 k; I* U0 H/ w
        else
+ Y6 I" |' m& W  r& N; Q3 Q                printk(KERN_INFO "LED register sucessful!\n");, k, i2 P7 |5 k5 `; d% `

: a/ G$ e) k' C2 B9 |2 `8 T- r0 i        return ret;6 I$ g+ E1 b: P8 U9 }, H; n$ q0 @
}
8 J3 O% F. @: E  p$ w) ^2 g; m% Q
static void __exit led_platform_exit(void)
0 [4 ]' s: _9 {: d0 s0 G% z1 S( e+ Y{* a' p) V$ o$ r4 ]
        platform_device_unregister(&da850_evm_tl_leds_device);! i2 k3 A8 _- [$ z; M" g: n
! j' o& Z2 G/ S3 v! `4 W7 x( j8 H
        printk(KERN_INFO "LED unregister!\n");
! B: P; Q6 V. }; `% w}6 I2 A6 U% I2 l- ~
0 z5 o) d8 b  O" \" e
module_init(led_platform_init);
8 |8 k% l6 V5 [module_exit(led_platform_exit);: @# D/ Q  J# }0 S
2 [1 d# g0 Q* ]% ]5 g0 K$ c
MODULE_DESCRIPTION("Led platform driver");" ?; ?( q$ U5 P$ J" f8 H1 x
MODULE_AUTHOR("Tronlong");; T' e/ {5 p' R- J2 s/ y. z
MODULE_LICENSE("GPL");# Q# x) f( r" Z& A3 B
6 H) S, E# R9 {/ O% a3 _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-10 10:39 , Processed in 0.040329 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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