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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* M7 n, m( B8 t. G; ~. B+ H#include <linux/init.h>( H3 q6 D  q  Z
#include <linux/module.h>: A7 O- z7 D8 u* t# K
#include <linux/kernel.h>, a% H; H' s. P: a
#include <linux/types.h>
0 n- z& i% G* O/ N* c" b#include <linux/gpio.h>
. c( Z0 M' l% `$ i+ f& u! ]#include <linux/leds.h>
% k, Y" N) j! i! d; h8 v4 r#include <linux/platform_device.h>! y1 S$ Z/ Z4 h
) |3 V" D- A2 P# u( w$ n  p. ^1 C
#include <asm/mach-types.h>
. S2 S. t8 m4 Z1 j/ E" _#include <asm/mach/arch.h>
. x: ]# R* d+ @$ s1 k( d$ `#include <mach/da8xx.h>
) S5 d, J  ]) J/ F1 T4 [7 R#include <mach/mux.h>
# q2 l' ^' s! G) P6 v* O
( m$ o6 S+ z/ ?( Z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). \4 K' g7 V+ N" U) ?9 |5 l1 C
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% Q$ j1 G. O: [1 f, f! i# D
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% J$ c5 T6 |: W: h
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& V5 L. I$ Z3 ?( M* H* _2 L# S0 `" N3 j
/* assign the tl som board LED-GPIOs*/
7 ]. f4 q* G. qstatic const short da850_evm_tl_user_led_pins[] = {, W* l' }" Y+ h
        /* These pins are definition at <mach/mux.h> file */
$ o! s5 e3 Q0 J! l4 R        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# }) f) i% T4 [: {, G        -1
' p/ e( D8 P  U0 h1 ]$ v};
: [2 d/ p& n" V; H- B- x1 S; M9 X! F
static struct gpio_led da850_evm_tl_leds[] = {) M8 `7 K+ o- k4 r" I& s
        {
2 X  X" G  E7 M* C1 l; x                .active_low = 0,
$ [0 P, Q4 z, l6 [                .gpio = DA850_USER_LED0,7 X" t. }% Y! y' s  H
                .name = "user_led0",
0 Y3 E# }+ i  I9 A# B1 s' g3 v( R                .default_trigger = "default-on",2 C. Y6 ]& `, J; i
        },
, P0 z' i- T# _- T  |- y, x        {
5 W( Z' O. H8 n                .active_low = 0,
0 `# p6 d+ G( E# g2 [8 P                .gpio = DA850_USER_LED1,
! v* M: b- I/ J: N6 s                .name = "user_led1",0 y0 V0 i" t$ W6 p% F; `! P
                .default_trigger = "default-on",# O1 v- C" c2 K( x% x: J* D' ~
        },+ u+ `- N$ S. P* G- v+ g
        {
# k5 U5 i  i* V0 k                .active_low = 0," s- l- b( \3 B2 d
                .gpio = DA850_USER_LED2,
* L6 N0 R9 Q0 B  K+ l+ k                .name = "user_led2",9 i/ z& o% h* L0 }
                .default_trigger = "default-on",
9 u; N7 z2 B2 J  @  u  j        },) n  f" y/ @) v) Q
        {9 L! t# `( k( k
                .active_low = 0,
# d' j) ?( A% o4 @- j% X) ]1 E2 ?( I                .gpio = DA850_USER_LED3,- E2 E4 |% o4 m# N' f
                .name = "user_led3",
; ]  k" B! ~2 u$ x                .default_trigger = "default-on",* F* u; Z6 J/ X6 d* y% A! _- S
        },5 C7 i- r2 i# w
};
  {$ c1 u- H: x" V. h0 B& ^9 Y/ v8 u5 o' ?' u* ]% J
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ e4 _  c3 u5 n. M
        .leds = da850_evm_tl_leds,
# a5 r$ s5 M2 u5 ^( I        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 o; c- s. }. O( e" P( v- x* U};, Y8 [/ G' P3 q, ~
" b: @( g- w; b1 j* _0 `
static void led_dev_release(struct device *dev)
3 t: R6 S2 l' B! f& J9 v{
& W+ e1 G+ i; H0 D6 q" M1 [, n) X  W};
9 r/ }$ E8 S# L/ m
/ j! A" ^3 a6 |  E6 H# sstatic struct platform_device da850_evm_tl_leds_device = {0 m  x: [, `  A4 N7 Y/ h
        .name                = "leds-gpio",
6 L, ?2 W, j$ y/ Y1 i" y        .id                = 1,
$ q$ j* n% U9 O2 r! N' e0 d& n        .dev = {  B" Y1 ^! N% l4 X- G
                .platform_data = &da850_evm_tl_leds_pdata,1 O: X5 c& x1 m
                .release = led_dev_release,/ q; ]' n! J& o4 |" v" ]
        }* x! i9 p, ^4 q* ^
};1 R3 n% c( ~% k

: D6 V: X) [" e" l/ v9 P, L3 ystatic int __init led_platform_init(void)5 g/ b* X, ~* s) B& Y  W/ g
{* k5 b, M, M# k# t
        int ret;
" B" |7 a# j3 p' ?#if 0' }0 g$ G  e! `% ^2 @; X3 W' C
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 W: x' j) s, h- N8 m/ I
        if (ret)
" Z) s2 Y  D. }0 m: t                pr_warning("da850_evm_tl_leds_init : User LED mux failed :", n4 b: p( g% a( T
                                "%d\n", ret);
$ U- U. E, d# {( q! N. m$ ~  y; O( F9 E#endif* P8 o) H2 M* ~$ f2 o
        ret = platform_device_register(&da850_evm_tl_leds_device);
% q5 o6 L) A% x6 q4 R. W        if (ret)
5 L& b5 A7 m9 O* l0 ?                pr_warning("Could not register som GPIO expander LEDS");0 f$ a* ~! o4 j* P! _
        else3 u. z' g1 ?% n5 l9 ?* W
                printk(KERN_INFO "LED register sucessful!\n");% H$ \7 f, d6 |/ w2 M! k

- L* E1 N( D0 Z, F        return ret;
% {1 \4 A, @3 k) p" X) M% p  A6 S}9 Y- m$ i: N/ q+ e' ^9 X
5 {% D6 \- ]8 O/ X0 x1 x& N1 j
static void __exit led_platform_exit(void)
# w6 Y0 m2 o* n/ u{) C/ f, O5 R% C( k* B8 O/ i) l
        platform_device_unregister(&da850_evm_tl_leds_device);9 I. N, Y6 [1 g3 T0 g

5 W& Q! h1 C9 ]1 r% c: L) T        printk(KERN_INFO "LED unregister!\n");
3 ^+ b- S$ q+ U* U3 O2 _}3 u$ k- a3 G* G7 _" F8 `. h; E4 k4 n

7 s% N% c8 S" O7 }4 D3 ?% D2 ^" ~  rmodule_init(led_platform_init);
' x# ]4 q6 K5 r( e$ _% J2 P8 a# Vmodule_exit(led_platform_exit);
0 V) A' S. K4 o9 x# V( ~% G0 f/ y
* W( a) [1 d) iMODULE_DESCRIPTION("Led platform driver");4 C! T7 t" D# ?+ {# m
MODULE_AUTHOR("Tronlong");
* F# x& p! B% v" k% }MODULE_LICENSE("GPL");
  X  z; x1 `* b" z0 P5 i) \) S) e: L3 _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-19 03:41 , Processed in 0.037043 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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