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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# V, B1 g! f+ F6 c& o$ Q! w5 h
#include <linux/init.h>5 }5 m; r2 `8 |+ O. i6 }7 d
#include <linux/module.h>( y& t8 j6 m) |5 q6 M
#include <linux/kernel.h>
- T& [/ o: q7 H: O  }#include <linux/types.h>
0 V' w- t& e1 Z" h4 \4 @1 p$ Q# Z#include <linux/gpio.h>
8 G0 o& a2 D6 d9 u' ?" s/ B$ E9 r#include <linux/leds.h>1 ?3 J$ t7 j0 t( w" T+ a! w
#include <linux/platform_device.h>* K3 ~& J6 r: a( l5 S( k# A  h

- ^, S+ c; d8 b* ^/ I& y" f#include <asm/mach-types.h>
9 {# i2 ^8 ?* ]+ K0 D1 g( x#include <asm/mach/arch.h>5 [+ n* ?. v% k: V( H) L
#include <mach/da8xx.h>
% T' k. w+ w7 t#include <mach/mux.h>
/ E  x8 Q" p2 n% M/ r8 G
* j# k7 C9 Y! S. H. F#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* D9 L$ C6 x( e5 Y6 z8 [#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% f( s! `) |1 I+ S#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); N3 o+ |! C4 o/ I: n
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! e4 ]5 L" w3 y

/ C! w2 e$ n, N7 Y: \/ n. C0 e- J% o/* assign the tl som board LED-GPIOs*/
6 J* h$ k7 P1 @& _' s6 O! r) ^% xstatic const short da850_evm_tl_user_led_pins[] = {
) y! b. A5 X+ Y: w7 b% s+ p        /* These pins are definition at <mach/mux.h> file */) T- F; T8 s6 q2 y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* X- ?6 @) L. p
        -1
- J# o9 x+ D/ ^) |, J1 o$ B& V};$ g# q. S: H# c- ?+ e* \; u- Z

0 f6 `) @" [4 R/ W1 Y8 Jstatic struct gpio_led da850_evm_tl_leds[] = {
( C* w5 n) V- m2 q( V        {
+ v6 Y2 l* o) f" H                .active_low = 0,1 M+ I3 L8 p; r: L8 f/ C2 d
                .gpio = DA850_USER_LED0,9 T7 u  q( ~8 X# i  E
                .name = "user_led0",
4 l+ _  D$ Y3 i- s$ W' p' F. d                .default_trigger = "default-on",
; ]% C3 M9 Y: f) n4 y( x$ \0 E        },; Y  i0 {! u0 c( B' y
        {1 C6 @& b2 x' ~5 u
                .active_low = 0,$ X% J( `1 a) [* j, s& L2 N% B: V
                .gpio = DA850_USER_LED1,
6 Z7 A1 n3 i% X; j% F                .name = "user_led1",8 q3 }' h6 X! e
                .default_trigger = "default-on",
! M8 X( P4 B& A5 `7 n        },
0 }5 q1 p: P$ ^# o        {+ ^( e  ~: A. C; f& |  I
                .active_low = 0,7 M7 w% o& I  n$ Z- V
                .gpio = DA850_USER_LED2,
& ^6 `* j* b+ T- i* L( n3 u                .name = "user_led2",5 f2 b1 T0 R( k& A# e  O3 _
                .default_trigger = "default-on",. W+ W5 P4 x7 V0 B* u- g' j
        },8 a* Z' p: q. j$ L* f8 x( z
        {
! U5 W+ h0 S& C                .active_low = 0,
% \) x5 k4 p8 V6 U                .gpio = DA850_USER_LED3,* L. O" v3 F4 N
                .name = "user_led3",7 h# ?* }" O( y' {$ [% W
                .default_trigger = "default-on",
3 E- S$ E+ g: a7 Q/ W        },& [9 s4 \9 t, u
};$ K, c$ q5 x& S3 y

: K' r( G* Y# ?& Mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' v6 W& z0 t& m6 V6 @        .leds = da850_evm_tl_leds,
" }) N/ U; z: {: b% W        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) g% _; {- s9 ^9 k; Q$ Y' D};
3 O! d, c' K- F9 B% N; A9 [8 W
' P+ a# r! u6 Nstatic void led_dev_release(struct device *dev)
! C$ F' n7 z6 P{2 q0 p4 [+ h. r, k6 v8 @8 v
};/ A' t7 L% W& R& v/ }

/ ?, Z% a" r4 I$ v# Ystatic struct platform_device da850_evm_tl_leds_device = {
# N) z" c5 u7 H5 ~. n. \0 Z        .name                = "leds-gpio",
  v( @$ o# U- G# g/ F        .id                = 1,
3 E1 W/ ~% B9 l) @3 X( N/ F        .dev = {7 G) ^2 C0 _' p# Z# L7 n
                .platform_data = &da850_evm_tl_leds_pdata,7 a8 l0 ]2 q& @1 P6 c# z
                .release = led_dev_release,
/ }% C9 X; Y3 h; B! D0 o        }
# {) b2 {% }% g2 v5 g};
5 q$ D# z# h6 }) K8 X. a  U2 i3 F* x% {6 `5 c
static int __init led_platform_init(void)7 S% A# e% `% E1 Q2 O
{
( A5 }* f( `  v! {' Z0 L+ q        int ret;
" h9 y# M4 i; E% B( T% Y#if 0  E: F; C& E# `' H6 q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( P) K  ?' m* \8 y# b! R& S+ |
        if (ret)0 F. z  ^& H% @
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ x* Y7 m. s$ U                                "%d\n", ret);6 `+ }/ l& N5 K/ G
#endif! R+ a! E/ c# J' P* l
        ret = platform_device_register(&da850_evm_tl_leds_device);3 {6 [- H' F6 y  ?
        if (ret)
4 ]) l* L( X+ I5 P$ Z3 V                pr_warning("Could not register som GPIO expander LEDS");# O8 A+ a" A; V! Q
        else% o  @$ f9 W0 B- t) n- F7 e
                printk(KERN_INFO "LED register sucessful!\n");
- \3 A: G' I3 R; a# p& Z; q
  L; d" j3 H- u$ }9 g        return ret;- p/ j8 M# m$ u% w
}
  j1 p" F: E$ u% ]  y0 }2 C" N9 B  z
9 J3 {, |+ L4 b3 Lstatic void __exit led_platform_exit(void)
7 X- x' h8 v/ G9 w6 [. r9 L{5 L4 V5 H" k6 r; q. a7 N
        platform_device_unregister(&da850_evm_tl_leds_device);' D& Q$ G, J  B# V

! U. L: i8 W4 F7 s; s        printk(KERN_INFO "LED unregister!\n");
% N7 G" V+ N3 W  C" g& q}
% a, Y: ]+ B* h+ A( V: V: ]) {0 U
4 L* c) C1 d6 Omodule_init(led_platform_init);
+ X. \$ ]9 Q' Y0 P, Imodule_exit(led_platform_exit);) l! _# f' o& ^3 S7 y9 ~. a

: e7 k8 v6 o: }MODULE_DESCRIPTION("Led platform driver");
, s4 R: c' R; s3 P/ [! oMODULE_AUTHOR("Tronlong");
6 N3 o0 ~' F& q: kMODULE_LICENSE("GPL");
( b7 `# c+ }3 X/ E0 i8 c# z& S: O1 E1 Q5 F3 I" `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-2 06:53 , Processed in 0.038235 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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