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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# H$ q) y' y# B% Z- D2 L- y#include <linux/init.h>4 f: K' u3 \! p2 M: {) c
#include <linux/module.h>0 v/ C  k! m+ [! Y6 U$ N" c
#include <linux/kernel.h>5 T6 v0 _/ k7 @2 a% M# _9 o+ q
#include <linux/types.h>
+ @1 m) R. j6 Q% W5 O+ @  U, O#include <linux/gpio.h>2 F. d) @- ?4 h7 Z
#include <linux/leds.h>
3 ]- G6 w: m( d! i* ?  n8 j#include <linux/platform_device.h>3 p. }7 H" g$ k: h. |) j+ Y
! I/ x9 u- N  ?% ~
#include <asm/mach-types.h>) d; c4 s  ^# n; t6 `) Q
#include <asm/mach/arch.h>/ L1 f9 g" e# B- g  s) y- }0 _
#include <mach/da8xx.h>
3 R, m. l" {) {! E8 P' z#include <mach/mux.h>
# [2 Q' d7 c8 l$ D, X- R& l5 {% j3 X: B; d  Z
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 R& V. m' l2 K( {. R- N1 W7 |7 ?
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( c6 p/ O* J9 T#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( T+ m. }. X+ ?; h3 \" b$ l#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 p8 Q) z+ v2 T3 V7 X8 a  h

- r$ G" \' o- q& K1 v) V5 Z/* assign the tl som board LED-GPIOs*/
  s) L' E& p4 X! Vstatic const short da850_evm_tl_user_led_pins[] = {
$ E2 M& z; q* Z5 ^8 U        /* These pins are definition at <mach/mux.h> file */4 z. F1 x# o9 j
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% U, m. ^9 K* M# z6 W        -1
" O4 z, R9 `( @9 ]) G7 W; `};
: Z# ^3 q% |3 b. i  {6 _/ d' X+ }2 v4 O5 T
static struct gpio_led da850_evm_tl_leds[] = {
2 v; F. `1 I) d9 r        {
& [8 j( L; m' X& K, l                .active_low = 0,
  \' {; B1 J: K+ c                .gpio = DA850_USER_LED0,; e5 c0 u: N) C; O6 P; i
                .name = "user_led0",
# f! _! m1 W( c) H9 e                .default_trigger = "default-on",
8 ~8 V( W7 J. G6 J        },) E* W* p8 h4 W3 b5 T9 z7 Q: Q
        {* u+ r4 h4 m5 }( E; J8 A' _) l, J
                .active_low = 0,4 M7 r8 W. m' d: D" L! \3 A' Z: W/ ~
                .gpio = DA850_USER_LED1,
- a: F1 N5 n# X: A9 u3 q" w" b                .name = "user_led1",3 F7 d, F7 ?. W# L+ J3 z% d
                .default_trigger = "default-on",
0 R+ v* x$ a; S2 v8 j  I) o  Z        },2 G/ ~; s/ h% W
        {' \5 [) Y/ x# K) M* i
                .active_low = 0,
3 O6 z$ d9 R/ H- E9 k                .gpio = DA850_USER_LED2,
1 A/ v8 A% O' b5 b7 |                .name = "user_led2",4 L6 {  O8 N) |% A1 h( _
                .default_trigger = "default-on",
9 u: j! p5 A+ X5 l- @4 o! v6 o/ s        },6 W! v5 u9 Z+ u; X
        {
$ ~$ E0 k3 V+ ^! r$ g                .active_low = 0,  r. r) M2 f  h" S
                .gpio = DA850_USER_LED3,3 N) p; d1 G$ Q; o
                .name = "user_led3",8 C/ u# _1 n1 a9 B0 W9 C; Y
                .default_trigger = "default-on",- G! o; d4 G, i( C. q
        },; j/ b" p& n8 Q, k; U
};7 k) k1 z, O( ^! v
2 V  Y4 j3 o$ x+ V+ N
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ W3 ]5 B7 c& }( t, s. P        .leds = da850_evm_tl_leds,
6 l  s) o6 J% @( S( n/ }- Z: x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" x- Y# X7 ~3 M. x. K& ?};( I1 ^* M& t+ |! ^

8 B, d2 [$ F4 _4 X" _, y. w( C- nstatic void led_dev_release(struct device *dev)
7 `: T8 u) a8 g. X: D" x  H{
# X. K$ t0 i7 Z7 a  D4 _* o6 W# O};
) `: v  C  h% I3 t( Z2 Q7 n
* f% r" A; R$ d! P* E8 v# w; sstatic struct platform_device da850_evm_tl_leds_device = {
5 w" `/ c( A! o  L. @  s; x        .name                = "leds-gpio",
: A( t/ R- f: f" t3 _2 T        .id                = 1,
& K; M1 k0 q* G0 z/ a# u        .dev = {% z. g: Z' H- |7 I& R) [) g
                .platform_data = &da850_evm_tl_leds_pdata,
& A( r1 S& w& R7 M. @4 S" m                .release = led_dev_release,5 }0 C, N- F: S% c) L) S/ Z
        }# `  L3 Z+ i2 T7 E8 x" w
};6 I$ L$ j  d2 r; \  k

6 u+ B/ I- _0 i' {5 E% K6 \static int __init led_platform_init(void)
$ a& y2 ]- U7 f9 ^{# B" d) T( L+ J% U
        int ret;- y3 s5 x/ x( j5 H* T! g( ?* f
#if 00 Z$ r6 L2 c+ k/ x: U
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- {& X# ?. S" n8 P9 R        if (ret)6 C+ _3 l5 k+ c! }2 U0 S% d
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" ]" ^: ^0 @- F) K6 A                                "%d\n", ret);
, G, s4 M) I# O# O2 [2 Z#endif  `4 z1 T3 S& T3 n; P4 `" a* d
        ret = platform_device_register(&da850_evm_tl_leds_device);6 N, r; L6 r( D2 x8 Y! q
        if (ret)
- x. q& y3 T0 d5 s" w. Q                pr_warning("Could not register som GPIO expander LEDS");% P' V! O- F! a  z
        else$ U3 {9 Y8 e! b' ^0 y/ r
                printk(KERN_INFO "LED register sucessful!\n");
! A. G+ t) O8 \& F+ `( N# m6 x. i0 [' K7 F
        return ret;
- [1 x/ B7 ~8 a& _; R: I8 h0 H}' A# m9 \& A2 X/ u' C/ C( ~- `  Y
: _& v' U) T  N# Z/ e, k
static void __exit led_platform_exit(void)
- ]  A' ]8 C2 J- M$ p/ Q( P' b7 K{
1 a; j; V% I1 z* X2 g        platform_device_unregister(&da850_evm_tl_leds_device);
( R% F* p& B. b8 C: z
. h/ ]* b9 h2 e3 w7 J        printk(KERN_INFO "LED unregister!\n");
8 g5 [( x% u/ \  ?9 U) h}
+ h% C! K: q7 ^$ I4 m3 z, s% {. f4 A* L5 F
module_init(led_platform_init);1 `' f2 q# l1 \7 D2 g* s/ G1 j* ]
module_exit(led_platform_exit);; v9 g  _  s1 V- _, G4 p7 P
! s& O! Z6 R- l0 j+ m* H* O
MODULE_DESCRIPTION("Led platform driver");- r" a6 l! j, R; ?
MODULE_AUTHOR("Tronlong");+ k- s' {8 f6 K7 o: z
MODULE_LICENSE("GPL");
: q8 T( Y9 @& }/ j! I2 ]  m" e" G7 Y: v  ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-6 23:37 , Processed in 0.039626 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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