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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" z) ]/ x# v1 F5 O/ f#include <linux/init.h>
* `. {; {. e# ^& v& m) F: K#include <linux/module.h>. m1 U& c" r6 n- l; o' ]7 K, B
#include <linux/kernel.h>
& |/ P+ [, h9 v3 `8 m#include <linux/types.h>
8 `; V) m) P$ H" W& \% @. W#include <linux/gpio.h>
- C% p1 {1 j# x. V* y3 E#include <linux/leds.h>: c* y% t3 x: M  u- J
#include <linux/platform_device.h>1 l- j* D! C0 H) i7 R2 k% G
. o2 `( Z; N* R' N( L  E4 D7 |- F/ p
#include <asm/mach-types.h>9 S' h# Z, t0 }0 }- b
#include <asm/mach/arch.h>! K! u6 m* p9 o
#include <mach/da8xx.h># x: Y* t4 G* x/ ?2 h
#include <mach/mux.h>. I' h3 R; h$ t: P. G

' W$ c5 ~2 Q) [& O% H#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ h3 z" y/ Z& M# i2 q7 }  Z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: Y, Z% m$ m# l! l" J# s. \' \#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# @2 E9 D- K( N* P+ q
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. V/ L9 I; Y! e. E0 |& W
1 X2 k4 Z8 q, t5 F/* assign the tl som board LED-GPIOs*/
. ]3 K0 \" b$ \  {: I4 ]" dstatic const short da850_evm_tl_user_led_pins[] = {
3 y3 A. B6 B  u" y. ]# q1 ~        /* These pins are definition at <mach/mux.h> file */
- w2 a9 ^' \" @8 H4 c5 J& e  K        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; n$ v# x3 q! f* }/ t. `; T% |
        -1
8 e3 s- R/ V" f) u$ N+ ^};0 d) [' I7 l: q/ L2 U
& H5 j  _2 q  M7 @! b* L6 l
static struct gpio_led da850_evm_tl_leds[] = {9 E2 m+ p% M' F$ ~# }2 i( Z  u. c0 g
        {
$ P4 ^: s4 t; Y  G                .active_low = 0,
7 P3 f. \3 X2 H* u/ L: C1 S: r                .gpio = DA850_USER_LED0,7 k; t/ ~# e# D9 i2 d6 O0 d
                .name = "user_led0",4 K2 J3 K; a5 V, X$ H/ O' N
                .default_trigger = "default-on",
( `7 ^' r  w; x6 G$ ?% `        },
; T" W  b, j& s& _9 e        {- ?) y8 O& k, a* m' k
                .active_low = 0,1 P1 v4 ]. S9 o- K1 n, ?+ i  X
                .gpio = DA850_USER_LED1,
, c4 M+ z7 m  r( V& [0 L                .name = "user_led1",6 S' E3 }  ~3 l! E0 A
                .default_trigger = "default-on",
0 I2 o4 q1 }/ [3 c6 v' I5 Y8 f        },4 A3 q& T. V* V1 \% M5 H4 l
        {
) N8 ^2 A" b9 z# ?, D2 _' H) a                .active_low = 0,
8 k8 K) }5 e7 B. N/ q( T: P1 @                .gpio = DA850_USER_LED2,0 d" S2 K! c( j" F
                .name = "user_led2",
) Z3 ~, I+ o# m3 V' N4 `' _, i3 C                .default_trigger = "default-on",, N& ^+ W& L5 y, x* ^3 ?' r, V1 L
        },! \* k. ?% X* z6 b3 C
        {& f6 {9 E, V0 F8 F
                .active_low = 0,+ L' R  ?# G) m9 g- `
                .gpio = DA850_USER_LED3,3 W8 X( \; @5 q1 B' T
                .name = "user_led3",
" ?" W. g" I% v( A3 a                .default_trigger = "default-on",
4 p, Z7 t) F* U- Y6 ?5 \        },
* u& N* k. d0 M" y};
* Q5 i" a5 R5 n- k, B! i0 ^7 G: k4 ^0 K
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; o: U* c: N8 h. o' d8 `9 u
        .leds = da850_evm_tl_leds,
0 w, e2 v9 W: _. M9 H        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' D+ [7 i2 R  R) F$ c};# r4 `( @! b5 q+ E

3 o. t  q# E) Q# ~' @3 nstatic void led_dev_release(struct device *dev)
4 t4 @9 h4 l. Q. p9 @: ^7 U" K{
/ a5 [$ g& e" x5 S* K! P& d};6 s9 k! z7 {- N: H" T
- U+ [3 Y# W4 i2 d
static struct platform_device da850_evm_tl_leds_device = {
/ d6 y- \; ~' q8 I        .name                = "leds-gpio",
4 |+ l2 Y) C% z& X* A, C8 ~) Y        .id                = 1,% S- a% `7 n1 l4 G  m% ^
        .dev = {
( w+ E5 ^4 d  {& x, J3 M                .platform_data = &da850_evm_tl_leds_pdata,2 E4 E' M* G2 v) p
                .release = led_dev_release,
+ l; _% k; E% G" w2 j1 J' d& l        }
. e- I; M# V4 |, t};
$ {8 H& E. K) N! _& U7 E; X8 r  d0 P6 a9 L& X- S3 X: G( q
static int __init led_platform_init(void)
. y( ?' Y+ r: m# O$ I' t+ d{; t% Z. j* X9 Q$ P: Y/ Q
        int ret;+ B# E- r: H7 F' `. N8 b( V
#if 0
' b/ Q$ C* @4 _1 I$ @, J        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 s7 t( }; i4 z  \$ O
        if (ret)# X' H; v* @1 A8 T+ f( n
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 w% f4 g- K: l" Z
                                "%d\n", ret);
# W1 I1 O1 Q5 T) T7 B8 X- V8 X#endif. |. Q1 ?" |2 j* w, N0 B
        ret = platform_device_register(&da850_evm_tl_leds_device);* y+ M7 a4 B6 x& p( F, k8 t8 s
        if (ret)
) V' l/ e1 |( J/ F! w9 w                pr_warning("Could not register som GPIO expander LEDS");% Z9 T& M1 u7 ~1 R! @: Q# w
        else
+ g+ y$ E1 T, e" K) k                printk(KERN_INFO "LED register sucessful!\n");4 }' h8 F) U0 K" ]

) C7 m( w$ r0 B( v7 g        return ret;' Z! ~0 F0 o. V
}' |+ r" q4 P7 U' V5 D! u5 e8 Y
/ J- l- T6 u. v* J  d% X
static void __exit led_platform_exit(void)) K/ m, \4 w! E3 q& w# @4 P" n
{
; R, r* S! h+ \( g) B# `        platform_device_unregister(&da850_evm_tl_leds_device);/ a& m% C, c9 l+ D" \
4 A2 O7 `3 w9 F: v& w! z1 m$ x
        printk(KERN_INFO "LED unregister!\n");
$ P! |( w; ]7 c+ a}7 f& B( e) s3 Y8 ], Q

  N+ ^8 m8 U, g' ]0 j/ Nmodule_init(led_platform_init);
( _7 T0 l, b+ L# ?: r* S2 ymodule_exit(led_platform_exit);
; l' x. h) S& z3 s! Q
3 q$ l* A! v( T' i( eMODULE_DESCRIPTION("Led platform driver");
! q" c2 O- B- b( o6 n; eMODULE_AUTHOR("Tronlong");' [$ b# e; b: j3 z
MODULE_LICENSE("GPL");4 K: b; W% T6 [2 d# l- S! N5 h

4 Q* u8 h( z* `( }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-11 19:35 , Processed in 0.041236 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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