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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  @2 E  R+ h+ ]1 v/ b2 s. x. k
#include <linux/init.h>
# q2 D" x) r! E/ \) ~#include <linux/module.h>' [+ I2 F! R  A1 j% w8 v! F
#include <linux/kernel.h>/ L6 p: p' k& j
#include <linux/types.h>6 o0 p' x6 g, |- r) x" m5 M1 }4 w
#include <linux/gpio.h>
& b' f7 H% f! e#include <linux/leds.h>
7 t& a+ R7 ?0 T) C2 B#include <linux/platform_device.h>9 p1 `( s3 h9 j8 Q* q

$ F0 g) O" m/ r* k$ ^* n#include <asm/mach-types.h>3 \- \% G! p8 w7 t* h. r
#include <asm/mach/arch.h>; O6 Y# j3 r4 c& P# J! x$ Q4 |; x
#include <mach/da8xx.h>! @6 Z9 [: }4 V0 N, X* i2 z0 W- [! ~
#include <mach/mux.h>
4 Z- u' s4 y$ n
( C- E/ L! S* k6 Q! Y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0), Y) j; H* U; ~; l7 W4 T$ I# D
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- n$ ?1 @! z- U+ Y. T: \" O#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
: _2 K) V  N! @' X#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). M, }* H. T3 J' ~+ n

5 Q2 b( a  S/ Y5 v! m/* assign the tl som board LED-GPIOs*/
; d# P: \  Q# S; ~* {static const short da850_evm_tl_user_led_pins[] = {7 U& @% i2 r4 M; ~* j
        /* These pins are definition at <mach/mux.h> file */
: N* ?3 i3 W7 y3 g        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" J/ O# q! f/ T2 p3 O) u9 b$ _5 e        -1
! y( L' V0 u( k1 K3 w};! W$ U7 ?( }: D2 e* A7 z
2 ]' C. Y7 E& }" N+ `$ F; W5 k( }
static struct gpio_led da850_evm_tl_leds[] = {
# g6 |8 Y2 k) A* F  v. I9 f        {; f* q1 O! J- n% k5 g3 c
                .active_low = 0,
* g# z( Q& z4 V/ c) D1 x/ [                .gpio = DA850_USER_LED0," w! K1 f5 T  y: O0 n: M1 V  [
                .name = "user_led0",! _+ b% q: ^7 b( Q4 G- e& N! q0 c
                .default_trigger = "default-on",6 _; H/ e3 e+ w; F
        },
7 ?0 W8 [/ u4 I        {
7 g3 r3 z0 [( Q                .active_low = 0,) C6 b( V; l, b5 B2 k
                .gpio = DA850_USER_LED1,
5 }& @# N% M6 H: E                .name = "user_led1",
) W4 q" j  V. R" e                .default_trigger = "default-on",6 \5 t( N8 V' Z# y9 x0 \8 I- Y5 [+ s( y
        },
7 X2 I9 L1 T* g# g        {
5 V" ^- c( e0 S% R" ~3 I# U* F7 ]                .active_low = 0,# W% n3 B* c4 }6 \$ E" H/ v
                .gpio = DA850_USER_LED2,' i! |! m# y  L
                .name = "user_led2",
! [0 R. K/ ]# [2 F" U2 i                .default_trigger = "default-on",
1 Z) c+ K$ G. Y* o, P        },
, U1 c$ q" K2 ~3 X6 K% ]6 x        {
  H& K- f$ g) I7 W1 |% C                .active_low = 0,) I# G' x+ I  d$ D; R
                .gpio = DA850_USER_LED3,
6 U2 F( w( ]$ ?7 z8 N4 D                .name = "user_led3",
7 V4 s( G  H" L+ V* S  r/ Z- c                .default_trigger = "default-on",
/ v. s' G* s* a$ f5 s( P0 p8 M        },
3 y8 S+ ^2 C  Q, X! S0 S' j& ^};
! I; }1 ^9 t+ `% C( F1 ^/ \; M+ [  E# Z4 Y/ r* S
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ s* y; S" x/ V4 t2 q6 Q' F; J% q        .leds = da850_evm_tl_leds,4 ^; ]5 D* P; d( ?6 ~% P
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 V) F5 C# Y( I+ z
};: v) n$ d& S/ p! h: [+ I9 `) _

, n! |) v: r0 l/ q3 vstatic void led_dev_release(struct device *dev)/ s* I* Q* Y, [  j
{
& K' O$ u. g% C};
7 U. V$ N% z; o' d7 M3 h
) p3 j% Q& h: J6 astatic struct platform_device da850_evm_tl_leds_device = {
/ n& a/ p2 z: ^: m' W4 g$ b        .name                = "leds-gpio",
; {3 ]8 [( r+ B+ Y. ]6 Z' ?$ Q" w. ]        .id                = 1,
  O' s0 M9 `1 c' @' _        .dev = {
* d  @( I# |! J! ^8 p& D$ n" Z, |2 s                .platform_data = &da850_evm_tl_leds_pdata,, o5 e% W( c" G
                .release = led_dev_release,  E. C6 C) L+ G6 K' {" s  i
        }- C' D) w1 d7 h' i! m% C* R
};
8 z7 y- H. `$ a3 d4 e; M  ]4 ^$ G) i
static int __init led_platform_init(void). u% p# H3 y2 u) v
{5 l' X4 k$ G9 X! ?* Y& E
        int ret;$ p6 @. T: v; m4 b7 h2 r- D
#if 01 R3 G0 j# T( H2 @# z. ]
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ [$ W/ g5 d8 {        if (ret)
" `5 W- }5 Q: @( I3 S                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") d- @: E& E) a( ^( r. ~
                                "%d\n", ret);
$ [) w9 ?) j1 i! M' Z0 j2 O#endif
6 W" N; G/ E0 d$ V; t        ret = platform_device_register(&da850_evm_tl_leds_device);8 q* }1 h8 k: H% Z
        if (ret)
" [! K! D' v4 J1 u                pr_warning("Could not register som GPIO expander LEDS");1 o+ V; Z% ]8 K* I4 W
        else
9 X" M" ]* @+ {                printk(KERN_INFO "LED register sucessful!\n");" h7 C) b: @6 l$ `0 R1 k- P
0 V9 b$ X$ _+ q- K4 I4 w" v. y
        return ret;
% }4 U2 B9 h( m, ?) l}
9 h3 o9 ^- |; h( S( B4 y5 |- K! ~+ T- M# Y+ o; `7 T
static void __exit led_platform_exit(void)
- o  L" L9 k5 L- k/ H$ m: h. J{- N; \3 \4 K* z) w
        platform_device_unregister(&da850_evm_tl_leds_device);2 p: A9 I( @/ P9 N# j  C# H* M( a

; h4 S  t5 F5 O7 S8 H+ E7 ]        printk(KERN_INFO "LED unregister!\n");! u/ O9 q% N; q4 W
}
! T: E2 H) n! O
1 T1 l! x. P, T  [( @2 B0 [module_init(led_platform_init);* G: n: C* x7 T' m6 `% K8 u$ P
module_exit(led_platform_exit);
8 |* ]6 |6 d- s1 G4 [! ?: R# C$ n
' x( m: {# k$ |$ n0 P' QMODULE_DESCRIPTION("Led platform driver");  [) ^) J/ d5 ~2 j3 o4 j' R# p$ S* {
MODULE_AUTHOR("Tronlong");
* E1 C! l6 R5 a" P2 q; g! `( bMODULE_LICENSE("GPL");5 R) S& z( t. _- f- ?- ^" [
% m- U( f, H. d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-10 18:08 , Processed in 0.037915 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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