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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" i0 z- [8 S4 T% f- O#include <linux/init.h>
/ g+ u$ J. T* C) ]7 n) b#include <linux/module.h>
. r* Y+ k: v. ?( D' T5 ~0 h$ ^#include <linux/kernel.h>
. t1 O9 P$ n$ ?( H#include <linux/types.h>
) h: K' A" N( E6 Q9 \8 b#include <linux/gpio.h>/ f# I& }5 D+ ]) n4 K! ~/ N: S
#include <linux/leds.h>" q) a/ I6 G2 m2 k' ?( g
#include <linux/platform_device.h>& F5 W  T/ v1 m% n8 r

5 J5 r& _& z* D* G8 I#include <asm/mach-types.h>
3 d/ ]+ r+ A6 u1 P: {#include <asm/mach/arch.h>
) S6 U6 r; I( D$ \$ q4 u#include <mach/da8xx.h>) d+ B; b$ ^' C2 @4 w
#include <mach/mux.h># y0 q& K; R& Q2 ^' ]5 t  _
; @' o( ?/ Y5 B% e2 v' s
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 U/ ?1 i& _# Z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 H# ]% I: N. r* m' B0 M/ q- C#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# f! D" _4 m" C6 W# R& b1 N- I
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  i: A! s' c& w6 {7 O, }3 l' p4 B$ i+ c
/* assign the tl som board LED-GPIOs*/
" G1 l2 G4 u# k& {static const short da850_evm_tl_user_led_pins[] = {
# P/ E! M9 x6 T! [3 G. c7 A        /* These pins are definition at <mach/mux.h> file */
9 m- i/ B- H, x+ L/ f6 |        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 z1 |5 d2 t( w) C" L( m' M
        -1  p! P5 H$ _0 y
};! A; C9 m5 ]( {- x# E

+ e. n; }  ]# H; M* Astatic struct gpio_led da850_evm_tl_leds[] = {( I4 t6 Z4 G1 X8 R
        {
& s% S8 V+ S, Z- z1 j; q                .active_low = 0,+ J- e. m3 e; T5 N+ L0 x2 [1 n
                .gpio = DA850_USER_LED0,
% T8 w6 I3 G: j, H                .name = "user_led0",8 V5 M  z0 @/ g
                .default_trigger = "default-on",
. S+ X" q9 ~$ F4 ~% V' X        },
& e' x  Y2 B. Q& Z' G- Q* C, }        {) c4 G$ T- m" Q' g  V; G
                .active_low = 0,8 `5 x) [& d0 C) P; b$ M6 \. a5 ]
                .gpio = DA850_USER_LED1,6 N. R' J: [0 M) R6 e' v7 ?
                .name = "user_led1",
3 X2 l  D3 W/ k4 L! V/ h; O* j9 d9 M                .default_trigger = "default-on",
/ E& u) V1 E; r, V0 F4 [- t& ~5 P' Y        },
; U- `. p9 \- L/ i  O% F2 c        {+ Z( t. `0 H3 T3 A4 B$ I
                .active_low = 0,4 {, H$ G  l  T" F. c
                .gpio = DA850_USER_LED2,
2 x/ w5 v+ b! `, Z' E2 \                .name = "user_led2",
' W) M, E! w- O2 N6 D) M% \                .default_trigger = "default-on",
5 q6 R# Q9 c" h/ o( z* l        },0 [% ^# o; b. m6 E8 G
        {
" P) D" k+ H* e  f# M% d* ?( Y                .active_low = 0,
2 P& O3 ^% a2 l9 q                .gpio = DA850_USER_LED3,' m% B, p1 c% X( M, @! x# t
                .name = "user_led3",4 N) h( T; m  d" @7 x
                .default_trigger = "default-on",
4 Q. a4 d+ ^: ?0 |6 ]- Z        },
. p, x3 C; R! }: B( L};* f' u4 R2 @8 `) }4 {( Q
9 q/ h1 Q' F, A0 }: U7 P( \2 r
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% W1 y" z' D# [2 e7 K
        .leds = da850_evm_tl_leds,- R: s" {/ k: o" \8 O4 \
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ U- L7 I: p/ }/ {+ {};6 i* V# I7 O  d( H, S7 C2 w
2 `+ S# C" p' @. q" ~* T
static void led_dev_release(struct device *dev)
3 ^6 W* C, B+ t{6 i! ~" _  r# F) k  E1 @/ p
};8 v( |$ J" T) z
; r6 o& J& V/ @
static struct platform_device da850_evm_tl_leds_device = {
! w, _5 P" r9 J- t9 c" n7 o9 q5 x        .name                = "leds-gpio",
! Z  z+ o* R( s6 C0 S        .id                = 1,
. `. A  [! N( A        .dev = {5 A1 l9 Y) L: Y& {+ h0 m
                .platform_data = &da850_evm_tl_leds_pdata,
( f9 q7 z( b! o. J- O+ j% C                .release = led_dev_release,
7 @! P+ e9 |; K3 W        }; C4 O( ]( B* x, F5 @1 g
};4 B, g/ \  y" x' S2 t6 t9 @. v3 U% S
! K' u2 d/ N; r) I
static int __init led_platform_init(void)
" z' T* E/ C! D6 @{) [; H+ O; R- R( E# n. Y9 w
        int ret;# ^; e2 y( b+ B8 l
#if 0
2 k: {& [4 T2 b) ]! a7 o0 C        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# M& M6 ]' k4 l: ^7 P$ P        if (ret)6 ?/ u$ B8 E% `9 G
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ y; ^" x' Q$ t# o+ l                                "%d\n", ret);" A/ G4 q% w) K4 k2 e
#endif
+ N* X: e2 y' D$ c! P0 |        ret = platform_device_register(&da850_evm_tl_leds_device);9 U. W% o1 ]6 o* M5 F
        if (ret)
3 i0 A( u+ i9 k                pr_warning("Could not register som GPIO expander LEDS");3 F* {, U6 f( |* T; K
        else6 R7 M5 `% t) o9 g1 U
                printk(KERN_INFO "LED register sucessful!\n");
! o. v9 z  \+ i4 W8 }/ S: u0 c- D- |, |* N# z+ c- Q: Z
        return ret;
( k1 v2 `0 S7 ^) H: @$ h8 \}" r& C+ p8 K' _! S( l
4 v' u/ |/ p9 I, Z6 b% E: ]0 E
static void __exit led_platform_exit(void)
, ?; N0 Y' ?4 `! g{( W  K5 N; X) f+ n( }4 v
        platform_device_unregister(&da850_evm_tl_leds_device);
3 i4 V9 m5 B* i: ]. @  E# s0 @3 a1 z7 O- B: T5 L
        printk(KERN_INFO "LED unregister!\n");
" U5 P7 p- v+ _: [5 t% P; ]1 [}9 Y4 `2 H0 Q) ~" t/ d* F7 r

. @7 Y* O+ B/ I$ Y# u1 Gmodule_init(led_platform_init);- {" C. E3 v6 }& t/ n
module_exit(led_platform_exit);
( u4 D# i" W8 `: Y9 @1 y1 b0 `' t1 B; d3 y
MODULE_DESCRIPTION("Led platform driver");7 z9 W- P9 [" b* ]
MODULE_AUTHOR("Tronlong");
4 n5 {9 f8 i) |: xMODULE_LICENSE("GPL");
$ \3 R  v; J  J2 k9 t" D0 M/ j3 z1 @# a3 \. c7 E& Z' ~5 h. `) ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 04:10 , Processed in 0.037104 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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