程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, N9 e. K7 t) B: a( o2 P! K. K
#include <linux/init.h>+ [. \( u" F& D) `
#include <linux/module.h>0 g$ I; Q6 n$ q7 E/ A' T4 C
#include <linux/kernel.h>" b3 o. J& g; I7 m, a: m
#include <linux/types.h>% k$ `- I4 U/ X/ `1 l) O4 N8 q
#include <linux/gpio.h>8 ]4 O3 \. u* p- y9 g
#include <linux/leds.h>
; ^3 m3 ^+ a3 G#include <linux/platform_device.h>
. E! F* t. h1 V9 O' H) L! L( ^
3 ~/ O8 L" M& }0 R$ O#include <asm/mach-types.h>8 B/ T, i6 W. `; q5 |
#include <asm/mach/arch.h>$ l* W: X$ v$ X% ^
#include <mach/da8xx.h>' y) D6 W1 E) \& }0 b; l
#include <mach/mux.h>3 a6 B0 V5 n$ |- z( r8 ^
3 s  J+ P& b: U# S! Y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 \# q8 ~! r4 i6 {
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" N1 x, G/ |2 q4 T, h
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( H( U: S" T! s: X#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( ^( [" q2 M" K
& J2 V9 x% ^- f; J' S/* assign the tl som board LED-GPIOs*/
* y# o. Z- o/ @* ^static const short da850_evm_tl_user_led_pins[] = {+ _' v: G- |" ]& N
        /* These pins are definition at <mach/mux.h> file */, d2 R0 }  {" ]. n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," D% e4 z- ?: ^3 g5 p% N) Z- Y
        -1
4 d- s/ K( w& x2 T. h};" C* E( w/ O% {6 [! j; t! g

5 k: q! p" H- m1 T' z- astatic struct gpio_led da850_evm_tl_leds[] = {
. T4 p  [" X) J; X        {
- X- ?0 W0 F4 `' Y; E( P7 z( a                .active_low = 0,
% e7 c3 V6 \/ T: I7 g' U                .gpio = DA850_USER_LED0,* Q; e7 }% {2 h$ ~$ \# r% k
                .name = "user_led0",
+ T0 \& V; o$ {# m                .default_trigger = "default-on",
& W1 ^  C9 \, [. ^2 c  b3 r) m0 {        },
% l& B$ ?2 ^0 A: p* y1 C        {+ Z3 }; N8 m. p0 D) `$ z
                .active_low = 0,7 a% o  I! K: K2 A! g
                .gpio = DA850_USER_LED1,1 v* L6 x1 R" r  t1 j
                .name = "user_led1",
1 m. m6 w+ ^; c8 }4 Y                .default_trigger = "default-on",% f& q  _6 W+ c
        },' x/ ]+ f+ `$ m
        {- u, C* s" X% c* o0 e4 t
                .active_low = 0,
# z" ^& R; w: M, u* E                .gpio = DA850_USER_LED2,, Q6 w' V( O& d* O6 D
                .name = "user_led2",
0 z+ e5 p# f4 `' [- x( y3 T                .default_trigger = "default-on",7 V: x( B9 d( f
        },5 X, b- A4 q, Z. z4 ]
        {  n& ^0 A) J- a1 M5 k) c+ t% ^  O
                .active_low = 0,
  t4 c# H6 E& y8 L3 `( l                .gpio = DA850_USER_LED3,
6 r6 ^9 D/ T' h! H7 \& ?                .name = "user_led3",6 X/ V/ u3 w7 D4 O+ Z$ F+ y( _/ u4 L
                .default_trigger = "default-on",
) N0 @$ ]8 {' n  b        },
  y# N. o7 \% c0 k& W6 E* H};" K& V* i2 o: M* c/ h

5 J( |$ v6 R. l, O7 E8 [# fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; A& I+ W. `4 B1 ~8 J+ y% i
        .leds = da850_evm_tl_leds,
2 u/ n0 D" m* ]        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( q9 g* L4 |) y2 Q2 V1 F$ w& m
};: d3 g* v( B3 p  a
% X8 n" I' q! i7 T
static void led_dev_release(struct device *dev), w7 P5 w7 J8 m2 F9 D
{
, E% W+ c% K/ [8 M! b};6 w) J, y/ y+ M; p2 v; A& w: k
. [4 U8 ^2 s( z! n; h& }4 o7 f
static struct platform_device da850_evm_tl_leds_device = {1 L* ~& ~0 R8 }7 s/ ^# K9 k- G
        .name                = "leds-gpio",
6 {  R( S) W6 ^& I        .id                = 1,% W9 a: x% Y  \" K
        .dev = {
* o3 E7 j3 L8 G6 Z$ {                .platform_data = &da850_evm_tl_leds_pdata,
2 l) w) B' C, v" @; O                .release = led_dev_release,% f0 B' ?% O. q5 p, V! C
        }1 q; j1 Y$ B* g0 P
};) ?: J8 O1 f+ `2 T2 V

6 s; B$ q; z, B# R) n7 [. n% `static int __init led_platform_init(void)  ?- O. G7 `# T# E7 Y2 K8 i3 K* P9 }
{
# d1 |: Q; ]7 k8 R+ Z        int ret;% I/ S) J3 I$ t9 L3 h( s
#if 0# Y. `# O3 M2 W
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& i  k, w" F' P0 \  |+ n9 B8 e        if (ret)
# J9 w* Z+ a5 a/ X! E; x                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ z. S) H: D; ]3 `2 o6 K9 v+ t
                                "%d\n", ret);- [$ Z! q/ D3 _5 I" j
#endif2 X) W( y# K  T
        ret = platform_device_register(&da850_evm_tl_leds_device);4 F' ]6 X" f1 [% t6 _" K
        if (ret)4 p  S5 ^" M. ]; [* [- @
                pr_warning("Could not register som GPIO expander LEDS");
3 d5 |& h0 p, ~        else
3 f! v( {& e, W8 A) E- h' ^                printk(KERN_INFO "LED register sucessful!\n");' |/ A+ S8 B' R4 d3 n; s
( f) h1 h7 C( t( G2 Q  ?. h
        return ret;( T% h/ y* c" d7 t; W% \
}+ x4 l, U9 X* b2 j8 a8 V
: d1 \8 ?. E6 Z4 c4 m6 {
static void __exit led_platform_exit(void)
# h* {: u- `( M7 A* \) [{
) h: \  T. ~. E! N        platform_device_unregister(&da850_evm_tl_leds_device);. }& T6 U+ Q' J! ^4 S% {  I8 Z

# H5 W6 p3 l4 J3 `        printk(KERN_INFO "LED unregister!\n");
- L9 d2 A" H) R1 {}
; z7 |+ c! J8 b% b- s+ q+ Z* m, G2 h/ |/ Q3 T
module_init(led_platform_init);
. F0 X( G, Z; c- W! x9 S0 P9 umodule_exit(led_platform_exit);
' u" j5 `8 |1 T  I1 m7 S+ ~6 o% a9 L. Z( \: U# x! e
MODULE_DESCRIPTION("Led platform driver");
& J+ Z2 @0 l# T5 l) S( x% QMODULE_AUTHOR("Tronlong");% n3 l2 u' O' C- N
MODULE_LICENSE("GPL");9 g) y- b$ M, ?. b

1 n) C! `; q" Z  \- \; \! M3 w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-2-2 15:29 , Processed in 0.037724 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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