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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% t: R5 ~; V) N1 P! I
#include <linux/init.h>' k9 {# k& t9 W: u
#include <linux/module.h>4 g, B6 w+ X! n, q8 j& a
#include <linux/kernel.h>
/ n$ }2 [7 T8 h  T- x9 q) @#include <linux/types.h>
' ^! T5 D! Z1 A! N) O* n#include <linux/gpio.h>
7 `) f+ [# d4 t# Q0 W0 x#include <linux/leds.h>, z3 B  i( J8 |2 X. m
#include <linux/platform_device.h>
; e, \9 H5 D7 G7 u3 N) b1 t9 a# p+ j( c
#include <asm/mach-types.h>: Q  X: U4 @1 T4 }: O7 f
#include <asm/mach/arch.h>
* ^# |0 }6 B2 Q$ W" ]' g. X  }  M#include <mach/da8xx.h>
3 G% o. N, }# g#include <mach/mux.h>
3 C* ]) s( L: m3 p
+ {6 t# ?* E9 O. P7 r#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  ]; E2 o1 ^6 f4 i* M0 S  }
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* s6 O3 e* P# F#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ ?& y$ f( _: |! p
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 h0 C/ @6 J: C; g6 M6 m/ C: r! k# r) Y0 \! z3 e
/* assign the tl som board LED-GPIOs*/
: [5 P7 C" Y0 W# v- S& Istatic const short da850_evm_tl_user_led_pins[] = {
4 `: M+ Y' t* u  L2 R1 }( [        /* These pins are definition at <mach/mux.h> file */* U4 q' t2 c9 y: R! |3 }
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 w# z4 ^! ]* \
        -1
% G- G3 @+ ?8 {8 b3 ]' r};& Y/ Y  |0 O* `+ |0 Y! ~

9 q  \: i8 R' ~1 C8 c/ bstatic struct gpio_led da850_evm_tl_leds[] = {, s  [2 D" M% T* E$ r
        {
6 I6 [6 ]* \( m5 T. [5 H                .active_low = 0,& `# \+ D3 y& [# b% W6 X( E
                .gpio = DA850_USER_LED0,
0 K! Q4 a. f% g( r: L4 j9 b                .name = "user_led0",
/ X$ v2 _) s5 `. E                .default_trigger = "default-on",& H$ h: r. R% N# O1 u) m( H/ Y" r
        },
3 r2 ^2 T9 [* C) v- p        {9 v& o, @3 R! {4 Z
                .active_low = 0,
0 i0 @- a( d5 i8 L                .gpio = DA850_USER_LED1,  ]5 H/ L$ V9 z+ G4 N
                .name = "user_led1",' C; k5 S8 |/ ?" }3 h! n" U8 c# F
                .default_trigger = "default-on",
* E% l/ V' N2 m" l, i) x5 }        },3 T& x: }+ w* t* N! S. V
        {" n# x; k) a/ r/ t$ E) L: |7 o% g% m
                .active_low = 0,
, C. k7 y4 G4 i9 c& O' y                .gpio = DA850_USER_LED2,: `7 @/ Q* C- n4 T2 t2 m+ L7 i5 c8 ?8 o
                .name = "user_led2",
5 q( t4 H6 e- [                .default_trigger = "default-on",
* w: h% W/ U* Z        },6 _2 X8 e$ e+ Z2 E& ]) ]% \5 z* H
        {2 b4 e/ \" O$ t" Y7 c5 ]
                .active_low = 0,9 P6 T( K. K9 i: A7 d' @0 Y4 [( s
                .gpio = DA850_USER_LED3,4 O- {2 @; L2 Z  ]. t. y3 N
                .name = "user_led3",# O7 D2 c6 F! O& {# [
                .default_trigger = "default-on",
  y+ F8 s% S1 G4 j; e: i$ t2 \        },& q/ K6 c3 f  T/ S
};
( w) `; a9 y- H$ L5 `8 R
4 {- r# s% h( z# ~( {. y- qstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ f/ P% a* [8 x8 E& l
        .leds = da850_evm_tl_leds,
) g& g* W( {5 u1 }( D# @" ]9 L        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! b! g/ ]! e; M& Z+ U8 O% G% m};4 y! V* H! D( V5 ^& G, q5 r& u

. L: L( U. }9 s) istatic void led_dev_release(struct device *dev)
4 U2 x0 l7 Z2 o1 w4 z% C{
$ S3 K! c$ C9 ?};" T& o; h7 m  P* C' L$ @
% V, T0 }- b* H$ q" ^! j8 Q# B
static struct platform_device da850_evm_tl_leds_device = {
! f& j/ W9 K3 S0 A. F  o3 g% {        .name                = "leds-gpio",2 L! @, P5 B; p; U$ \
        .id                = 1,5 r8 Z7 [9 \, N- s, o8 C5 g* s' v( U
        .dev = {0 x( q* `) v( j! V
                .platform_data = &da850_evm_tl_leds_pdata,
8 z  j5 ^( U. e9 Q                .release = led_dev_release,
  e& y( R1 d* `' C3 c$ t        }
  D5 j7 d: Z: d+ C$ z& f- A  x/ c};- B; ]# W8 ?0 q

+ M' S8 _* R6 X: Ostatic int __init led_platform_init(void)7 F0 q  R: F6 z% v4 i; L5 g3 ?5 r
{
9 H% l# q9 h- I8 }        int ret;
7 Z+ I1 l' A- Y8 D5 ~4 A7 h#if 0
# z$ C* c4 E8 b: u8 _5 o        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: y0 E  R* z  m4 d& C* u        if (ret)
1 C' M7 m. v7 r% u4 a* B                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' z, d, N, y' {  g4 S7 B
                                "%d\n", ret);" @# e9 _' n+ r9 I0 }2 o' L" T8 |
#endif
- I" g( c# r$ \; _' C* T        ret = platform_device_register(&da850_evm_tl_leds_device);2 e  a9 y; {- u: L3 {
        if (ret)
. b( I" \: u& m5 H. w$ z                pr_warning("Could not register som GPIO expander LEDS");& f6 g, t. C2 @9 ]  [" N( |. J
        else# T  h" R% D7 W' w, T) |
                printk(KERN_INFO "LED register sucessful!\n");( p  r' ~7 S& E- Y& G

" h& r7 R1 A( f# M2 s  v3 M/ k        return ret;+ ]* s+ L& Y6 d: U) v( x4 ]
}; Z; ~7 l, }3 E# E8 Z4 T5 ?

7 }- J0 ^) i3 s: Cstatic void __exit led_platform_exit(void)- t( L9 B5 y4 l( V- g9 U4 Q/ p# i
{' b) W( z9 h' j2 F
        platform_device_unregister(&da850_evm_tl_leds_device);
, w, M+ Q5 b- `; Y, E4 Y. d9 s- `/ k$ K# C
        printk(KERN_INFO "LED unregister!\n");. `4 @0 Y# N' G. |3 E% P
}; ]: ^0 C$ t0 f: ~% e

% K) k; g) o: `+ o) s& ]module_init(led_platform_init);
5 d& Y1 p2 K: O, \, Cmodule_exit(led_platform_exit);" B& ?5 r% P6 J* h
' r8 g4 q% g( N! f7 O
MODULE_DESCRIPTION("Led platform driver");- \/ {  ~+ j1 i( @* ^9 f0 u* J/ \
MODULE_AUTHOR("Tronlong");
5 j$ z& V: X9 J- fMODULE_LICENSE("GPL");" v4 r' G& {! D! l, B0 @2 _! J

: \/ }3 t: L# v9 z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-26 13:07 , Processed in 0.038128 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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