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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 Q' t9 Y2 d+ o4 u3 A7 ^$ I#include <linux/init.h>2 h  y, r' y- y' a; v, }, \
#include <linux/module.h>/ v5 o$ H6 Z7 f6 S
#include <linux/kernel.h>
7 z: Y& b# e2 }0 I#include <linux/types.h>. O; c) \/ k1 ~( t5 V; S1 c
#include <linux/gpio.h>
8 Q. ^2 _. [) d#include <linux/leds.h>
) Q1 X/ ~  b% c" L6 d& T#include <linux/platform_device.h>* @+ S5 ^% ^' Q4 t# a8 M1 P. K" y8 G
9 j4 G4 O  ^# k+ D8 C
#include <asm/mach-types.h>1 T* g9 E0 _3 ]& H7 x
#include <asm/mach/arch.h>
5 G  e! ^" e& q* g6 l, Y+ Q! R#include <mach/da8xx.h>
( B* e) H8 G+ R( Z0 Q# w#include <mach/mux.h>! a1 o: N; a9 C9 R  I
* _8 z) q- F6 f/ t& Z
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  _# Z' L# A9 f2 O4 ]#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! _  X. R) ]! X6 V, j#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 m; h7 k7 _3 \2 k' x# q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" s% V+ e7 Z1 `  I$ u! {7 {6 ^6 C. S* s$ k1 A) h1 k
/* assign the tl som board LED-GPIOs*/4 {) o. i7 L2 C6 i$ Y7 ]
static const short da850_evm_tl_user_led_pins[] = {
$ x' z. ?- u: `        /* These pins are definition at <mach/mux.h> file */6 k7 N  S7 `6 z
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' a1 {: o2 H- i5 y  B, I        -1
) q3 W6 V) N5 p" e2 w2 D};
7 e( T6 K! ]# [4 {5 ~9 K1 Z! C+ b) Q' Q* E2 P! [/ d
static struct gpio_led da850_evm_tl_leds[] = {. F' K3 @+ \, W0 h# g$ S5 p# h
        {* Q% X! \. o  |! ?
                .active_low = 0,6 T" h, I* A8 F; w( D
                .gpio = DA850_USER_LED0,' O4 x) I- }6 e# i) X8 I
                .name = "user_led0",
0 V- f+ e' n- r- [1 d                .default_trigger = "default-on",
( V8 s/ T& U. s9 H8 u& G, l        },
; Z6 o- `' _$ I( x: }( G$ v/ ~; _        {4 E2 T8 ^* G6 H/ P& O( |" w
                .active_low = 0,$ k0 p7 x- ^, o
                .gpio = DA850_USER_LED1,
, C7 h' u, R% z- v5 F0 i7 b                .name = "user_led1",
% B4 Q- _  ~1 ~                .default_trigger = "default-on",
& f# w, K7 t, X4 b* Q) r/ Q4 z- I        },1 r. }' M' D/ y  |& W3 f
        {
; s. j3 S: r: o. D* D  O- M/ }  V                .active_low = 0,
, J$ x+ _  t2 P$ S# H                .gpio = DA850_USER_LED2,# Y. l5 M1 }- c# \4 j
                .name = "user_led2",
" ~" ?. H! c- P3 ~  _                .default_trigger = "default-on",9 ?2 I+ U1 L$ a# v/ s& ?3 @+ z
        },
9 {5 H) ~6 [- ]# r5 k        {
4 v6 g/ |  {! T5 N9 g) i                .active_low = 0,
5 z' C$ S* ^0 |                .gpio = DA850_USER_LED3,
8 c0 Y+ B$ P( \. u1 Y* q) V1 `9 Q4 _                .name = "user_led3",0 F9 G' Q6 _7 F
                .default_trigger = "default-on",
# Y/ k7 P. u. W' A7 t        },
1 L, I# ]3 Y2 I0 F5 ?7 h$ v! F};6 `- ?, g, s" C  w3 q8 d
# X( j$ |) b- E7 O0 G
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, H+ S+ m7 `) V6 u# u        .leds = da850_evm_tl_leds,
+ H; ^) ]: e& i1 t. X$ P( G8 U: W        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 F7 e/ m6 s" p. q% d& f# W: e};
# |' ]+ W: p. f* e; e' A! j2 s8 P! R' c8 i) P+ P. t& ^% V
static void led_dev_release(struct device *dev)
6 Y7 k% F1 M2 s/ [3 ?2 K{
& _- M3 n1 K% F* [};, ?1 ^- H; b: m
* s. k; q- ]! W7 J' \- n2 j
static struct platform_device da850_evm_tl_leds_device = {
" `9 t# a% o/ W3 Z2 U  P% f) A        .name                = "leds-gpio",
( Z7 e7 `$ h5 N2 n7 p        .id                = 1,* h# \  c0 F, t
        .dev = {- A- }: ?  t1 b  f
                .platform_data = &da850_evm_tl_leds_pdata,) T0 B0 N) `5 x& ~
                .release = led_dev_release,% f6 ?/ }! V( `5 h1 C
        }
- N! ?# N; u. f2 A  X8 \};1 k  M; \( W  X9 s$ y
4 y: ~8 i" }7 U6 m- K' q6 P- `
static int __init led_platform_init(void)9 L5 A9 y- ^) c& ~
{" k5 l, p4 L, g2 ~) P# a. M1 w
        int ret;
% V! L" {% x0 u6 {; a# u* V6 Q# m0 F#if 0! B/ C" r! g2 s( T
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 L8 ]& g! ]9 E        if (ret)
4 I5 o3 `6 u/ X( ^                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 u( ?9 f  I2 V6 b, ^5 X
                                "%d\n", ret);4 E1 w* S" x# F0 O) k5 a1 I! b) p
#endif
. o! f, l3 s% m7 z5 Q' H1 t        ret = platform_device_register(&da850_evm_tl_leds_device);' ]% R' ], H+ q2 n, Q
        if (ret). B7 s+ V! j8 u* n& \
                pr_warning("Could not register som GPIO expander LEDS");2 d  {- v$ x3 F/ S+ c% ]
        else
2 c! l2 I) s- c: w9 t) g                printk(KERN_INFO "LED register sucessful!\n");/ L9 v1 m0 P( C0 }% W

/ s% y! g7 L4 t1 a% g5 @! x2 v        return ret;& Y% T: |  \+ J) X
}  j2 t" p, {9 z# H$ W6 m* Z
( o/ z4 o! }  m9 [
static void __exit led_platform_exit(void)
. \8 y$ m) S' ~/ W9 O, V{
2 F' u% n* p  ~* f% t  l( d        platform_device_unregister(&da850_evm_tl_leds_device);
- t. X- T' E% w* J3 ~* l3 x$ {  v2 W! Z
  }# p: L' j1 e. d        printk(KERN_INFO "LED unregister!\n");
- A  r& k9 U( W6 j1 r}! M* i$ x* q0 f1 D1 Y" ]
& q0 Z7 T2 N$ G3 H$ Q
module_init(led_platform_init);
1 O# `8 I0 D% F) m7 P$ }module_exit(led_platform_exit);
6 l/ a0 _) J) K7 J7 x9 K
/ q+ ?* k- K- J) \5 u) jMODULE_DESCRIPTION("Led platform driver");1 i6 X2 W; \, \1 P
MODULE_AUTHOR("Tronlong");) e7 W( q4 r$ o: ^* o1 e" @2 x3 h% r, {
MODULE_LICENSE("GPL");0 Y3 z& j) O8 L6 l9 x8 D
  _/ X- V: l3 G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-28 04:41 , Processed in 0.053331 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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