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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。7 r/ B& ?8 k# @: r/ I0 m
#include <linux/init.h>! u. w& D  [. ^- r9 u
#include <linux/module.h>! X! i# n/ E# O4 C3 x# R+ [  u
#include <linux/kernel.h>+ W1 z$ U0 ]* Z( U6 |* J) ^  _
#include <linux/types.h>
% s5 w" E" R2 o/ g7 r/ ~. \3 z/ [#include <linux/gpio.h>- q% M4 O1 I0 J7 T# y0 }
#include <linux/leds.h>. \. G- q6 ~6 Q' Z/ X" T
#include <linux/platform_device.h>/ ~# O) e4 o# j1 E
* u8 V" e; ~! }1 P0 T3 V
#include <asm/mach-types.h>
8 K8 F' `( Q, o* v$ H0 R  ?. Z( [#include <asm/mach/arch.h>
$ u' ?4 ~) o) K0 o8 x- {9 o9 G#include <mach/da8xx.h>. Z+ o7 z3 m% A5 G+ B5 N9 f# \
#include <mach/mux.h>
9 J8 z% ~6 U3 E" z- A$ E& F- t2 A5 ^* A
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 r  X# ]3 J* R! g: P  M7 S" L. B6 ?#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 Y" X) |/ `  b' Z; `6 e, u
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 j3 |! V+ \* F0 Q. w0 _& e
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 ]" ?6 u5 Z" a7 z' U' O! J! \1 i

3 g; |+ ^( p6 p& H0 f+ q  ]) N/* assign the tl som board LED-GPIOs*/
; t; j/ ]) j, O% Cstatic const short da850_evm_tl_user_led_pins[] = {
9 k  U! s8 Z  C- ^        /* These pins are definition at <mach/mux.h> file */% }  Y* J! T$ q2 b
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ X2 A# L+ {9 Q) k/ P" v) H2 o        -1- Q) B( n; W' [2 {( L& y
};0 m& b7 ^. M8 [4 L, g1 h) x

, v% q7 W( e1 ^/ istatic struct gpio_led da850_evm_tl_leds[] = {
6 {- |: Y$ d2 y1 l& i- t        {4 p# d, z! F% l. t9 ?
                .active_low = 0,
- d6 v! s, k9 t. l) q7 O) @                .gpio = DA850_USER_LED0,
4 Q0 K6 ]/ h# Y: B                .name = "user_led0",( R: d% L8 {3 ?3 L
                .default_trigger = "default-on",
' T4 E& \( _/ Y  ]  c        },
. H6 q1 m8 O) o" R! U        {
- O: V2 e1 B/ n, v) ^- F                .active_low = 0,6 h8 c8 E& M4 k5 ?, h) M4 v) [& v6 P
                .gpio = DA850_USER_LED1,
1 W( Z6 q& A3 f6 G                .name = "user_led1",7 l; b& `1 g1 u0 q1 _
                .default_trigger = "default-on",
+ L; V3 c  ~0 c        },, R" q7 O8 ?- P5 V+ g
        {
1 O2 v6 a( t# ?2 F' S2 ?                .active_low = 0,
5 m% t& I/ ~+ {6 u5 I) c                .gpio = DA850_USER_LED2,
6 [6 \- @; W. J  z. e0 N                .name = "user_led2",% o, a2 x$ E& x
                .default_trigger = "default-on",
8 Q+ @, l- K( }- S7 @5 u# M" R7 w        },
9 o: \$ }4 K; _1 J  v; v* E        {
0 E) S3 ]* N2 \6 S9 N1 u                .active_low = 0,
$ _9 D" B- [& Y3 e* W% d, f) |! u                .gpio = DA850_USER_LED3,
8 N: G/ S3 o. r0 B! l* P/ X  r5 _: V$ ^                .name = "user_led3",
  |& a* w: V: P: j                .default_trigger = "default-on",! c! o. F  ]* T7 m8 ?  a- L* ]* l
        },
' ~( i- V* B( _3 g& Z};
3 f/ l: ~; h) c! Y9 w- t/ w; E7 O8 ^- y: J
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% g6 }: t( m3 [
        .leds = da850_evm_tl_leds,9 F+ A3 n8 ~5 Q6 n% G# s
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 d- b! [8 M" `9 w5 _};
' A4 [' M+ x! U4 A# i$ A) x, t1 \, s% D1 q
static void led_dev_release(struct device *dev)# E$ L7 b& a5 B) Y. k+ ~# m! k
{* R, A3 P% x- p' R2 C! _0 [
};
) V+ `1 B2 K+ C
7 |; c/ u1 L! P8 H: G. D  ^% Estatic struct platform_device da850_evm_tl_leds_device = {# ?3 L/ F+ Y' S, n% p! a
        .name                = "leds-gpio",: @# S9 L( o/ K& ~
        .id                = 1,# c8 V2 ?1 r& _: P/ c. u
        .dev = {
$ T0 i5 d$ u8 U2 D3 A6 N1 H                .platform_data = &da850_evm_tl_leds_pdata,# Z' u9 r  x: s
                .release = led_dev_release,
: R4 k; V# X9 z$ v        }
# v) e2 l5 x/ s};
+ q. ^; \# q1 h  O7 v  ~( f# u2 `
7 i- x) C/ j5 q8 l" E- ^static int __init led_platform_init(void)
3 f* \$ j; M3 ]- K% C2 N{; P2 V* J! i1 i) h% D8 P4 u3 ]2 k8 s
        int ret;# |! |4 X0 v& o* @- _! f3 G
#if 0
' ~4 @4 |/ |6 I        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 h3 V# B; Y- c& c; D2 k; r
        if (ret)* `) x* P5 k, d- {. ?
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 h4 q! f. W$ V0 \                                "%d\n", ret);
; g$ G/ o: n/ `  R2 w. _#endif6 w/ l" M  Y8 ^
        ret = platform_device_register(&da850_evm_tl_leds_device);
" o8 b* V- H4 K1 L5 i        if (ret)0 W3 m1 j. |6 R- B% S
                pr_warning("Could not register som GPIO expander LEDS");
  |# G6 ?" h' _0 k( d7 F5 q, o        else- g; k, E! N5 \3 Q& H( Z1 Z
                printk(KERN_INFO "LED register sucessful!\n");
; u! x/ S# o+ ]
- K. O6 G' C7 @# L# o: ]        return ret;
, [- ?$ s( V7 c0 y  Q+ B}
( v$ Y) f/ i# [$ F# r0 \* m7 q! V9 s; P9 e6 R. U
static void __exit led_platform_exit(void)
; x& F$ K0 g: h$ i" M' a{! ]" B/ |7 R# s) ]* L4 ?0 e2 `
        platform_device_unregister(&da850_evm_tl_leds_device);5 G- d) P. u, |

5 U. L) X5 |6 e9 E! y6 j' ~9 Z$ m* p        printk(KERN_INFO "LED unregister!\n");
! X' J, V( i. b}
$ O* Q0 [/ D) ^
1 O. ~" N9 |  O5 j/ j4 D  {module_init(led_platform_init);
1 T( [: j! S9 u- O+ {module_exit(led_platform_exit);
$ j. y+ w5 _& }5 W9 ?' Y: n
0 C& t. E. R: [1 l( GMODULE_DESCRIPTION("Led platform driver");4 ~  s" L- r8 e7 T  }1 b) W
MODULE_AUTHOR("Tronlong");. [7 X* K1 n2 c, _- s
MODULE_LICENSE("GPL");' m" h/ _4 ~, e+ o0 A, b
& F5 X0 z; I6 s/ x0 Z1 \/ O& c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-6 09:46 , Processed in 0.038946 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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