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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' i8 d1 X8 C' F( K1 [#include <linux/init.h>0 J( N7 n- f: M! S  Z
#include <linux/module.h>  J: v5 ~" h8 d  x: m  z0 b* T
#include <linux/kernel.h>1 u% i5 X% J% z! [- |0 C# }' J! p
#include <linux/types.h>
+ B2 b8 T. p! ^) e#include <linux/gpio.h>
5 c5 K/ f  H; z* |! b" b! Q" z0 V#include <linux/leds.h>! I5 Y' X: g  s9 o! K
#include <linux/platform_device.h>
$ |6 G" G4 p& C/ t; Q5 Z. d6 Q+ p1 P( @3 V5 Q5 q5 E! F+ x7 _
#include <asm/mach-types.h>) x9 m6 o* {" N7 B  z
#include <asm/mach/arch.h>
& h, x- f  d9 Q* T6 P( _; h#include <mach/da8xx.h>; H/ x) o/ p) K& Q" ]  ?
#include <mach/mux.h>2 b- N  |7 n+ J( Y

6 [( I/ i( A3 ]9 a- l  J#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& V3 c! z6 ]# O( v#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 z* ?0 |$ Z' T5 O  {$ i5 ]6 f#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 B6 n9 B8 D% D. P#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
7 h3 n" j0 }- F3 ^$ n# t/ W
6 Z+ @3 b4 z( U$ h+ q: I/* assign the tl som board LED-GPIOs*/
+ h7 L# p& H+ k; N6 T* C1 Bstatic const short da850_evm_tl_user_led_pins[] = {# [1 f% H* E1 N) S
        /* These pins are definition at <mach/mux.h> file */
5 h6 |6 M7 R6 |- @        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: E' o, H1 z: o& ^% |, M# |        -1
% N/ i- d! H* s};
0 T9 A4 x2 f! {7 X) H; M* }. a! }( f* F" g, m0 D
static struct gpio_led da850_evm_tl_leds[] = {
5 ?1 u0 @) b9 u7 b/ ~4 I2 {1 n        {
% F# s- `1 D6 v" B4 r& j( Q2 R                .active_low = 0,# W& z! ^8 b5 k/ W0 G% C- @; H$ U
                .gpio = DA850_USER_LED0,: O( B/ z9 W% _8 m/ [# e
                .name = "user_led0",8 ~1 t' S+ S2 V( H- J# _0 C
                .default_trigger = "default-on",# h  L% `& x& J2 |& _$ L
        },: X& R) D6 x, U' j, P8 F
        {$ E2 O3 T2 ]5 n% h& A: l
                .active_low = 0,  L% A: b$ \$ W$ `- T7 T
                .gpio = DA850_USER_LED1,4 L$ K# l. W" {* g: _! y( a
                .name = "user_led1",& b: U: u/ H, W6 k* o
                .default_trigger = "default-on",! m. r+ G+ }$ X6 W2 a( f
        },2 L+ T% k( z5 q* x: U0 Y
        {# d% L# Q! S" z9 T; Q  E7 n
                .active_low = 0,, h8 P) K0 ^- u, Z: v! @8 P7 u& M
                .gpio = DA850_USER_LED2,
, Y  g# _6 C; m& y( {/ M' N7 d                .name = "user_led2",
0 [0 b7 ?8 ~! `" d! D% k* Q3 S. g                .default_trigger = "default-on",
2 ?( R. H0 l- I  J7 D        },; ^: w2 \4 D" V# Q  Z, H& N! `  j
        {3 I% `( S4 p/ v( E5 F, @
                .active_low = 0,
- U+ j( F+ x: {$ D8 l* z                .gpio = DA850_USER_LED3,
$ `1 a1 ?2 ^: e% U: g. ^8 W/ c5 A                .name = "user_led3",
0 o/ C9 t" n6 t                .default_trigger = "default-on",5 D$ M( i" V5 n9 [% r) M* p
        },+ [+ W% K# z6 P. Q4 \# S! M3 W
};" e  o% v4 {1 k2 w& o9 @1 p+ V
, J5 f4 F+ |0 |. @. M) b6 i+ V
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {$ Z. l7 F* D6 U( ^; u
        .leds = da850_evm_tl_leds,. b5 B7 ^9 R9 [/ ]
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 M9 L$ \" i* ?- B};
3 u; s% w( o* C* M8 _# W" l& t" Z6 L3 ]* c. t8 E0 t
static void led_dev_release(struct device *dev)
8 e" h7 `# w8 W, m  {{+ r# T/ c" I5 y% z
};
7 z3 C# M9 @( S! I/ S
) |/ q) S# z2 C7 cstatic struct platform_device da850_evm_tl_leds_device = {
: x2 e3 d2 M9 z' t        .name                = "leds-gpio",6 b  P* `* B% F5 `+ L0 ?" U
        .id                = 1,
8 F+ f1 S) f9 t  k8 H9 M/ I. E        .dev = {, ~+ m/ c& J2 O# d
                .platform_data = &da850_evm_tl_leds_pdata,
$ O9 a( m) {1 R5 N                .release = led_dev_release,
$ @- X& U5 V7 q4 w8 [% B        }6 S7 \$ g/ U8 q, ], Y/ y
};, F* \, A2 z$ s' [& S0 U" {
: m0 q: P) ~0 X/ Y4 {
static int __init led_platform_init(void)
& ^0 p6 f7 h' h! ^{8 i" X8 ?4 F2 F6 L( H
        int ret;* U; C- `6 e3 K0 S) K) c
#if 0
& t4 J5 o1 B6 S7 O' W* Z        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 o, q) S& x! [+ s# C& d0 L+ L0 M  O
        if (ret)/ _* h" s7 r7 ^3 h3 W: z
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  Y, Y) A4 l+ \0 ~' {# S. [! W, f6 v
                                "%d\n", ret);1 p1 `+ ~5 E  F! B. S% X9 r5 N
#endif% ]3 X6 D" ~8 I3 |; o7 @" ~, Y
        ret = platform_device_register(&da850_evm_tl_leds_device);3 V& g  }5 A+ A( i5 D2 y* X: e
        if (ret)
/ I9 i. q: A: M! g) R/ C' U                pr_warning("Could not register som GPIO expander LEDS");& }9 g/ K+ h# C
        else- b+ s, g" a, X
                printk(KERN_INFO "LED register sucessful!\n");
3 e4 w9 V( }- q1 n& r0 q0 c4 |# [3 b# _; A- W9 W
        return ret;
! w4 y+ v: q# P# Q$ R- |% J}9 @9 W. e; V; W

5 Y+ Z, F/ ^' W4 @7 ]* a+ \& ~static void __exit led_platform_exit(void)% N* s9 ~6 q5 a7 J
{( S; W. q3 J" ?& y: W% |$ e
        platform_device_unregister(&da850_evm_tl_leds_device);; f2 p# W1 d* |
  X4 K- Q1 \2 d- H( p
        printk(KERN_INFO "LED unregister!\n");
) R( v4 Q; H, ]4 ^}7 u$ n7 U, ^! ~8 I' Y

. o$ b: b- t% J: [: u: b2 jmodule_init(led_platform_init);. g  U+ ?4 T& C' N
module_exit(led_platform_exit);
0 c+ C$ Z& n! A$ a( j3 z  o& u, c$ K8 {1 L6 {) D7 L
MODULE_DESCRIPTION("Led platform driver");. q; \* J& w' f- d& n4 u, Q* s; k
MODULE_AUTHOR("Tronlong");
* ~( Y. L% G& ?! S8 e2 oMODULE_LICENSE("GPL");
4 p) ^4 L$ f& d  v$ N( b$ @, U4 @' d- S( m# J# p6 u' q7 V# n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-13 20:31 , Processed in 0.040518 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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