程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 ?! G- P5 a8 `#include <linux/init.h>
# G- g2 I$ H2 [* z" w; v& f% A0 t, j#include <linux/module.h>
% {, b+ S! {, n/ e- o/ O6 |#include <linux/kernel.h>
& z/ J7 T/ i+ ?! x#include <linux/types.h>1 ?* D# I% p/ p- j
#include <linux/gpio.h>
2 p  z# X' a4 k0 X+ x; i#include <linux/leds.h>
+ _& Q" z6 r1 T# m. k% I0 X#include <linux/platform_device.h>& ~8 Z4 u* y5 ?

3 ?) I9 z! ]) i4 C$ G4 k#include <asm/mach-types.h>
: G$ @$ ]) F8 d4 e4 M#include <asm/mach/arch.h>' P4 ]% B2 A! d
#include <mach/da8xx.h>
1 }$ A$ z. i4 s#include <mach/mux.h>4 m( x7 F, @5 u! J  r

- T6 K, R/ \5 a0 b. t7 Y" Y7 t#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 W, _2 |/ l8 {% z/ t1 B#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) x- q- S! E( h7 t) j- d+ B#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 j, h/ H, g' |' W7 }6 {1 Q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 ]4 Q% ]/ y0 i/ j8 I
8 S: k' T( z. N- W  l$ H
/* assign the tl som board LED-GPIOs*/
5 y' D+ y! O- j) x" mstatic const short da850_evm_tl_user_led_pins[] = {
" U6 M# \1 Z' G2 C. z! X        /* These pins are definition at <mach/mux.h> file */
, ~4 G+ v5 `: [" P( J9 |        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, Y  X# s/ a  f# j
        -1( F0 _6 a) S, p' V( f, E
};# B, @3 y" r2 @
3 r$ D7 n! {& t9 f( M. @- }) p
static struct gpio_led da850_evm_tl_leds[] = {
6 I# z4 x$ _" S$ z% _        {
2 I0 |/ j' X( f0 y7 Z7 h; |2 [; P8 @                .active_low = 0,: n. q: U1 w- x- a  w4 I9 `
                .gpio = DA850_USER_LED0,$ ^! r  X  h# P. q- ]
                .name = "user_led0",
! q+ _0 S% |; P8 m" h% f. z5 `! P                .default_trigger = "default-on",
" f* K! t/ b$ R( p3 X        },
% W# k. g" O- v: O( S8 k8 ?9 Y% u4 e        {8 c- r2 k: {3 u& [6 R! i
                .active_low = 0,; T9 H9 F* p0 ?" q# Q- l) K- N9 s" j9 ?
                .gpio = DA850_USER_LED1,; }$ M  [; k* ?5 @& ]
                .name = "user_led1",$ k7 ?( m) h# u  t& L+ q
                .default_trigger = "default-on",( n9 ?  X. e; O5 k5 n% x8 m% H6 P
        },
1 O4 N( R- s) u% y1 u$ p4 p        {. y9 v  v6 a( o2 L) `% p
                .active_low = 0,
# L( y$ ~# o% s; @8 v% @                .gpio = DA850_USER_LED2,  B: n+ V. Z% ]
                .name = "user_led2",
8 i  @' v/ j7 i8 h; Z                .default_trigger = "default-on",
- g2 r$ x* Y( [5 {        },
% l: h& U% r; \- Y1 I- A        {( x' \2 d# U, W  X' V* H$ _
                .active_low = 0,
4 Y  n3 F( B. }8 H% H) S                .gpio = DA850_USER_LED3,/ v, D6 Y* Q) S. y# [
                .name = "user_led3",
: A9 M* A3 w- g  Y( ?% `7 `1 Z                .default_trigger = "default-on",: K; m$ Q& h$ H5 q: _+ U
        },
" @" k4 @& G8 I2 M( F: F% ^};
, Q+ p6 \& {& n. @- `: J6 E' m
) O' h$ L' j( y- p' Q' Dstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( T" c- J; x( B, F+ ~
        .leds = da850_evm_tl_leds,' }$ l6 F6 f. k) S+ z! n
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 A7 x  G$ Y5 y4 U- i- w7 x) ^2 v
};. p4 k  V+ b( t- A2 s2 t& n
) B, L8 Q! d" [1 A
static void led_dev_release(struct device *dev)
. o4 J- m" R+ ^) l7 _$ }; `{
6 s! K7 p& @5 {# i- }};  p8 q. b3 V3 T) W! h$ n8 d

  d- _7 @9 n9 I- c# b3 istatic struct platform_device da850_evm_tl_leds_device = {
( o  ]( g3 o- J$ Z' {1 T/ z9 ~        .name                = "leds-gpio",1 C+ p8 N! V, K: k& S4 d
        .id                = 1,( R7 X( Q2 x/ K1 e
        .dev = {
6 E9 d2 R# O  S  |  O* g' b                .platform_data = &da850_evm_tl_leds_pdata,
% b. p4 p# J" z3 w                .release = led_dev_release,- p2 \4 w1 u' g7 v
        }
$ |" o4 v5 G6 a( Y# p};' k8 d( p3 y& \/ }' Y) f7 t' S

  F" K% z( `2 J3 R* R3 t5 h* ^1 Mstatic int __init led_platform_init(void)) J5 K  T- L6 C
{
: \- a5 X  m# e! k0 M/ n5 P; X        int ret;
& [* G. k7 P& A4 j3 M#if 0
5 D+ ^! [' d. K2 ?4 S: n        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) }4 Q0 d% q$ H, B        if (ret)  f- ^) P4 {7 Q7 b: F$ X
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. n2 J9 X8 Y6 j( q- k0 X                                "%d\n", ret);
9 s8 r3 a$ M2 }$ n. w- L#endif
, u6 M' I( [  S& S6 L1 V: l6 x+ [        ret = platform_device_register(&da850_evm_tl_leds_device);
2 A( \% X4 S  c2 B* S! T        if (ret)
! L  ?2 h7 I, v: j0 q& Z" e+ b                pr_warning("Could not register som GPIO expander LEDS");. t2 s& e) M5 W
        else
$ d9 E2 _( L' T3 X+ I( s                printk(KERN_INFO "LED register sucessful!\n");! B8 V4 S- K+ u+ E9 U6 G

" e& A$ O- Z- ^- h1 [4 w        return ret;( H& M5 J0 ?" t! k! ]& A4 e
}( D1 H0 X0 t! }# Z9 z+ W

8 f, N2 R$ z1 x- A) t" {- x) Nstatic void __exit led_platform_exit(void)4 w$ V- p( J: [2 P; f; s# g9 [, a
{
3 V6 P# r* `8 D! _5 P: x; ?- K        platform_device_unregister(&da850_evm_tl_leds_device);
; e) y7 F3 J( v: |4 z1 j6 W/ Q3 k. `; |, y) M% \( ]1 h
        printk(KERN_INFO "LED unregister!\n");
/ S( j0 m6 {7 S( M) m* f}
9 _6 G9 G' p. n2 r8 O
& G2 c0 L$ C) k5 T! omodule_init(led_platform_init);
2 `% M6 B7 Y  k" O" I/ xmodule_exit(led_platform_exit);
2 n. X+ K0 [# a. k/ {* I" ]* \9 }5 J$ _$ P& T
MODULE_DESCRIPTION("Led platform driver");4 m6 q4 e' N$ R' j0 {5 v  w# \
MODULE_AUTHOR("Tronlong");* C) q7 n' k1 t! n' n4 k- ]$ T
MODULE_LICENSE("GPL");
2 e) c0 n3 U$ |' I6 V6 m  E: H( {: o1 z, _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-2-9 00:08 , Processed in 0.039920 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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