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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ s! X; W: P7 z6 k/ @/ ^#include <linux/init.h>
* u4 Q/ k3 j! W: A5 C- r3 E#include <linux/module.h>2 \. q% o) n. i# N/ S
#include <linux/kernel.h>
; z1 y$ p& p4 z) L! j6 R$ \#include <linux/types.h>  Q- E6 M5 `' ]0 C7 e- w* w
#include <linux/gpio.h>& x% P  U: Q2 h( s: d* Z
#include <linux/leds.h>
! p+ A# r; S: C7 I# L/ T3 t#include <linux/platform_device.h>5 ~% a/ t6 ^8 n! u9 t

  C5 e, }0 D* h# r0 e/ M& c" N#include <asm/mach-types.h>  u) ?0 H& H! h9 h1 C1 M! \
#include <asm/mach/arch.h>
3 |: o; v; `) V6 U3 K#include <mach/da8xx.h>( g  _2 I( d& d- p8 ?7 O- \
#include <mach/mux.h>
8 o8 y$ ^1 u/ P/ S! B  c  P9 E9 Q, _  j! r- T
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# Q  d- r, F& y# k7 T#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. i* n& a8 t2 ?4 b9 Q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! V: Y" Z3 x9 h( I/ _#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( d6 p: s( [# [$ a" O. x

- Q' {6 I& s4 ]1 C( }/* assign the tl som board LED-GPIOs*/
! I" N  L( c( t8 s7 `static const short da850_evm_tl_user_led_pins[] = {
( H+ `! j' ?$ p$ Q9 k0 o        /* These pins are definition at <mach/mux.h> file */* h. H1 l+ [/ @" T
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& b6 `9 Q9 ?$ f" ?0 x        -12 y4 p) U5 I5 j& m1 O' M- d
};3 {" {, K6 S0 T$ ^$ s

% k& ~* e1 g& I; C9 M, T: Ystatic struct gpio_led da850_evm_tl_leds[] = {
& R: ^' ]9 U8 Q* ?7 p8 J+ }        {( z) A" L: p" W# q+ `9 X0 O
                .active_low = 0,( c/ C: @* d7 g; {$ |9 l
                .gpio = DA850_USER_LED0,* n5 @9 y& o$ x$ _3 J) z$ @$ r
                .name = "user_led0",
# L; x8 z" z) s                .default_trigger = "default-on",5 {. c) B' D8 y8 R: s4 o. c
        },
0 l" A& @' n  [) j& Y- V/ r        {
* D, M4 u$ U- d                .active_low = 0,
1 T' r- c! ~% \5 O                .gpio = DA850_USER_LED1,
& v: h/ r* W4 u7 N0 F                .name = "user_led1",
" w! T( N8 [  ]                .default_trigger = "default-on",
1 c7 Z+ D. p0 T" C4 z& _        },
% \& z# i9 n/ U        {0 f" u! n6 b, _3 _! F- k4 t
                .active_low = 0,
1 g, K* c* E" }4 X  F9 k8 ?5 z                .gpio = DA850_USER_LED2,
7 H# W3 w- d+ l' S                .name = "user_led2",7 x& l( t5 S. E: q
                .default_trigger = "default-on",8 T3 m  P% E! f0 C9 ~6 x6 W
        },/ [" D1 @( T/ o) ], F# k; l
        {9 A! h- n$ q' v
                .active_low = 0,
/ ^5 G+ ]  h- y3 z4 k2 \# ^                .gpio = DA850_USER_LED3,1 H" K; {4 g' t0 U
                .name = "user_led3",
/ S! l/ K0 S2 @. \                .default_trigger = "default-on",5 N5 U7 _: {" h9 T3 i/ O8 [
        },
0 k. _" C* o4 F) M4 ?};+ _7 _6 Z1 W/ s3 @
4 l) P, S3 H8 b( H" Y( d+ _+ {
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( r7 X; u% {/ b# O' Z% d        .leds = da850_evm_tl_leds,4 c7 `# L& C3 u0 t( v9 \
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 H4 v8 z' X1 n( x. [6 p};' w! Y2 l  q0 S- D% B' f
$ V: o# A: w9 L+ F; k  ~/ f8 d
static void led_dev_release(struct device *dev)
9 N8 t( u; ]( o{1 }* h  i5 X3 y) D6 o$ E% L4 i
};
  v; c* a1 g$ X- \$ i2 B* A5 W, s) V3 }, G# G+ j1 ^" t
static struct platform_device da850_evm_tl_leds_device = {- c2 \% n. C/ \0 d6 n+ r: V+ C3 Q) s
        .name                = "leds-gpio",
* ]2 D, X& y7 j5 K) e        .id                = 1," T% [' M: [+ k: B+ y
        .dev = {
/ V. R5 o; e6 f/ @/ P( g                .platform_data = &da850_evm_tl_leds_pdata,
) T# b0 J5 z9 C7 Z* S                .release = led_dev_release,
* h9 }4 |0 \* n0 V        }
1 S3 G* T6 G4 `2 ?};2 g/ l* N/ ?) B4 ?$ K
0 a" N: @5 ]7 S2 ~
static int __init led_platform_init(void)
1 Z& W/ O/ y1 m! y' a{
( G5 d" y; M; w6 g4 A6 e        int ret;
( `) Z. r& M9 J! @) y+ O#if 0
& F" @  C+ s" S# t) r        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
" I: k# G) c$ Y' S7 [        if (ret)
, h. ]' k# I# S' Q) W1 d0 z% P                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 w- A, p# L. N                                "%d\n", ret);4 t; F. H; C( C
#endif
8 r1 g6 u: k- y1 O1 B        ret = platform_device_register(&da850_evm_tl_leds_device);# m  e1 F! u( w" a
        if (ret)
+ H$ d# w# @) H  t. ^                pr_warning("Could not register som GPIO expander LEDS");
7 m- n4 t( w9 D, {        else
2 n) G  E5 r8 r, _  j                printk(KERN_INFO "LED register sucessful!\n");8 h  e, {# J. z* f
+ h4 i7 ]! q8 x* c8 q1 Z
        return ret;
$ G$ H" i2 E/ |* p0 {- u( M}; l$ O6 r% G: x( H/ [8 `" R
  T/ n3 I* I0 @& l0 S7 ^
static void __exit led_platform_exit(void)
* h/ S* A0 |$ c$ P! k9 g8 B% N{5 O5 ^" G# O# W! D( g
        platform_device_unregister(&da850_evm_tl_leds_device);
! m. Z: J& B& H5 F1 H
. u; f8 s4 e6 J4 H4 @4 m        printk(KERN_INFO "LED unregister!\n");
: i* b4 _- x2 v# ]! }4 A$ s}
4 q" \& {% y3 v  S$ X5 x! m* S6 D3 @1 d! h) x( Z2 d
module_init(led_platform_init);
0 m$ g( H& \$ A, w  o/ Hmodule_exit(led_platform_exit);& d" L8 y; b" {$ w

2 D* F3 j; l# w% r( pMODULE_DESCRIPTION("Led platform driver");
- c# _% X1 z  {& w; ?2 n' A  kMODULE_AUTHOR("Tronlong");
2 P, p& N2 M5 OMODULE_LICENSE("GPL");4 _8 @$ H2 H8 y7 x- w  _) I
% o6 W2 V; N( q: I" D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-17 15:29 , Processed in 0.037385 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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