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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 O% y, O0 o5 I+ @/ E
#include <linux/init.h>2 b+ x! w1 ?2 ?8 A
#include <linux/module.h>
( y, N) I. i( C( j* u% A#include <linux/kernel.h>$ G1 G! O2 v; y5 ~4 D
#include <linux/types.h>
9 I3 @; R! n! I6 Q2 z! @' e#include <linux/gpio.h>
, n  i/ j3 l; {6 E9 B5 a, \3 p#include <linux/leds.h>' T3 L; h7 z) r6 Q/ {: ~
#include <linux/platform_device.h>; I/ M% Y8 r- O+ X

# S4 w6 S2 p- O" E#include <asm/mach-types.h>
9 \  z0 \# \5 H5 p#include <asm/mach/arch.h>
) i9 m3 G+ U/ B: {2 M& R# @#include <mach/da8xx.h>4 S& r2 S& c+ v( _5 e6 y2 n
#include <mach/mux.h>
6 D* p- a5 e7 p2 G) x" j- @& l8 t2 E) Y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 q! a8 v" ]: a
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 K8 X3 T- V- B" @- u( F. ]# R0 n: ~: ?/ ^
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 S9 m) Z! G( d$ k" Y$ U$ U/ U#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), t( N$ K; l1 A! Z2 Q

7 N3 h' j3 R4 @- e; m/* assign the tl som board LED-GPIOs*/5 I4 _! K8 U$ [! H4 J' e$ R4 a9 e
static const short da850_evm_tl_user_led_pins[] = {
7 N/ L1 Q% c% `% o        /* These pins are definition at <mach/mux.h> file */
. J; m: l4 n9 b: g7 Q3 S        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, k$ s1 f; y/ M% D2 m+ o7 B0 v
        -1
* p9 ]$ O& v! G! a2 ?5 g4 C};
0 }+ O! o8 D& _- S9 L, a
0 ^# g# m3 X4 t. e& Estatic struct gpio_led da850_evm_tl_leds[] = {! k, O) t5 \! K$ q5 f8 b  }
        {0 t! ~+ s+ Z4 C0 X
                .active_low = 0,
! q5 }1 b5 X7 ]2 \5 G                .gpio = DA850_USER_LED0,: b9 B2 Y; R% u$ o
                .name = "user_led0",
/ F$ H. G+ c1 h                .default_trigger = "default-on",' m* ?" H/ B! w- N! T5 \* n/ _
        },9 `1 m8 Q" U) w! M
        {
( i. E: p4 ?/ e8 W" ]! a% W  x                .active_low = 0,, c# |( t- Y; g
                .gpio = DA850_USER_LED1,
3 m5 \0 E+ K% t/ `' @- s4 U                .name = "user_led1",
) r) q' ]1 ~4 ~                .default_trigger = "default-on",1 h% q' O& K, e2 i  Q. ~
        },
& d6 f1 R# T- L! ?) A" b        {
, C" t8 [* P: `1 {( v5 m5 v                .active_low = 0,
6 z( @, E, u9 R# |! T* j& |! L                .gpio = DA850_USER_LED2,
) Y# ~! s. @4 [" x, D                .name = "user_led2",
+ Y& n" z/ ?! q. l4 T                .default_trigger = "default-on",: _3 i7 [& l2 Z5 p
        },( p; T& \0 E; d/ F8 Z9 R7 m" L
        {. V+ f" x4 S  v5 W
                .active_low = 0,9 F* p* p- \7 N- k+ O/ J! ?
                .gpio = DA850_USER_LED3,
0 L6 V$ F! S. X8 |2 X5 i/ p! Z                .name = "user_led3",
" u2 J" t6 X- [. q6 E                .default_trigger = "default-on",
! |/ h" P% y7 j: I& _        },
' s4 v! n8 w) b) R1 q};
1 j' c5 r0 Q  n% k) p3 R& F  f  y; B) K
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. s2 A& x) O! T0 G! z; x
        .leds = da850_evm_tl_leds,
' q3 K6 a- u. ~; U        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, n; }+ m2 c# g" |
};. f6 n6 V( [: m1 i5 y1 b% D& W
9 E/ c  N/ ]. u% y( q. H
static void led_dev_release(struct device *dev)5 h  v7 K  h+ h( V( q* m' ?
{
' O$ z/ I6 ?% P. v};2 j: y) v9 M! L2 i5 J! g+ P
0 K* c* a: G( K' V
static struct platform_device da850_evm_tl_leds_device = {
! J, j* c# X$ ]; P" h  ]        .name                = "leds-gpio",& }' V5 n  n: t4 r0 X4 H
        .id                = 1,$ S4 s- ]9 @* @/ f0 M+ i
        .dev = {& `7 L0 u; Z4 \% ]: {! x4 |. K: H9 P- m
                .platform_data = &da850_evm_tl_leds_pdata,
  }& k! O4 k6 U2 h9 K% o. L) G0 }& `                .release = led_dev_release,
( @% |, u  T$ [+ \# K        }/ t* t5 |9 H) |: `$ X! w' x! Z
};3 ?5 F9 ~, @7 o
8 F: }- V1 v5 T0 |* t: [
static int __init led_platform_init(void)
+ [# K' s0 F9 U. q' ^4 u{* [8 q7 r% D4 l' |
        int ret;4 p! k, p/ S2 S6 N* H
#if 0
% P- f9 w+ g+ F4 [+ V5 a# z        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# X3 U4 Q! H# N, n% l4 [
        if (ret)
5 v" `4 \. ]% ?9 J/ F7 _! v" ^                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* N  Y+ K; b! ^4 I0 ^                                "%d\n", ret);0 B: x3 \1 l- y
#endif4 Q4 ^9 u0 M& \" [, J& x# b
        ret = platform_device_register(&da850_evm_tl_leds_device);
! P8 g' d5 X/ j7 U        if (ret)
  r6 t" N1 X& P# S+ p                pr_warning("Could not register som GPIO expander LEDS");5 e6 [* M6 a. M! Q. G
        else
5 ~) Q& [& ?; t. |( q1 O6 A/ I                printk(KERN_INFO "LED register sucessful!\n");
. K; g* F1 x" b5 B) Z
1 u( I0 {6 H  x        return ret;" s' Y6 g" n' I2 Q9 `; L9 R  }
}( d% p) J" v# `

& v0 d* {6 t: E( ^0 sstatic void __exit led_platform_exit(void)/ M- Z3 ^1 G, P# w* ~' @, J8 D! n
{
' i" u; M8 \* J1 R* A. O8 R        platform_device_unregister(&da850_evm_tl_leds_device);, J3 ?! p7 I5 c% X- U

+ I7 U9 s5 E8 }. C. b/ a3 E( n        printk(KERN_INFO "LED unregister!\n");2 N4 p. l" Z4 N
}
& b: @/ D2 k9 p
5 E; a! m* o  A* J5 Jmodule_init(led_platform_init);
  u5 S1 n. `, U$ a+ K6 \module_exit(led_platform_exit);0 n/ V6 K: D* v* T5 v  H
& {0 o, y1 R9 `/ P+ o2 ?+ b
MODULE_DESCRIPTION("Led platform driver");' W7 c- ~% i: B  l0 o
MODULE_AUTHOR("Tronlong");
, W" n% @: _. _MODULE_LICENSE("GPL");+ g0 f# \; g) D8 j+ q; v1 S8 P! o

, U( @/ T2 C; ?8 y% r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-22 15:04 , Processed in 0.042991 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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