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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 O8 l; e' \& w
#include <linux/init.h>
+ B0 `5 Y& r' Z  d5 \/ n, C#include <linux/module.h>
9 `; o/ _0 Y6 F8 Q' u7 b' Z  P#include <linux/kernel.h># H! S5 ^0 p, y" N* u
#include <linux/types.h>- F. {( C$ g3 G3 \
#include <linux/gpio.h>' ?, T: R5 @/ B7 v
#include <linux/leds.h>
! C  X1 s8 @* B# D) g#include <linux/platform_device.h>
0 }& J$ r6 C; j0 D
1 B& Z! Y: |  `8 k/ O& q! Y/ j#include <asm/mach-types.h>' i' A$ W( h/ i) r! i  G, B4 V" D9 [: U
#include <asm/mach/arch.h>" {# `8 ~: v" D, }
#include <mach/da8xx.h>% p2 |& {, y. f# L% K! ~
#include <mach/mux.h>8 E* X4 h' d, k
5 F) y0 @$ j) p+ B3 D  g
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% C/ X' `, l# N8 t' Y3 G
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 S1 c) z: {" }- C* P) J#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ J# x  ^) G! J8 h3 v' Y+ l( o/ _
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, ~* y1 Y  P4 L5 R& w6 m9 x3 @" ~+ [1 ?
' ?0 m* O3 H  D" v2 j; s* T/* assign the tl som board LED-GPIOs*/% {4 Q3 E+ ?' _& {$ \
static const short da850_evm_tl_user_led_pins[] = {
4 H" ^! @( ~& o: g) G0 Q        /* These pins are definition at <mach/mux.h> file */  ?* }. _& r0 c2 N
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! q6 g% L  f( i" M
        -1# g  Y- A" ^: b/ U( Z/ i  i6 V
};
$ Y+ u, q3 h# t
5 t6 U9 D7 L0 V2 @1 g2 j9 gstatic struct gpio_led da850_evm_tl_leds[] = {; F3 v6 C  ^- C% |1 X
        {
8 P+ N( X( e4 d. p                .active_low = 0,
" z- _) r% A' {$ N/ {- l                .gpio = DA850_USER_LED0,! p$ N. o# S' Q! C9 s% v
                .name = "user_led0",0 Y3 v2 y; v7 d: p
                .default_trigger = "default-on",
7 g9 F: N; Z* ~' K4 b        },0 |$ z* t9 w, s0 k  O% P- I
        {
( C2 n% r( F( M                .active_low = 0,
' Z  M. A, e1 O( x( d' b                .gpio = DA850_USER_LED1,
  t: x  L0 v9 m4 k/ z                .name = "user_led1",
( F* [/ K4 {' g7 |+ |/ h. f4 M                .default_trigger = "default-on",* [1 L* I" T/ Y. ]6 _7 U
        },) C7 E2 Q5 |  W6 \5 J# Q- o  b# Z
        {# s0 A5 a2 Y* V0 H
                .active_low = 0,
7 j  m( o; p8 }$ _5 u                .gpio = DA850_USER_LED2,
( l/ z& M- R) J3 X7 Y                .name = "user_led2",/ e) K1 X' U* A% y& d: z
                .default_trigger = "default-on",
' ?4 H, p- y" w) L0 c  ~1 v        },
# j' p* z& L8 z        {! i6 @; G- P6 T, k0 i6 Y* c
                .active_low = 0,
9 j  g. o. V- U: `9 b( q0 [' ^5 f                .gpio = DA850_USER_LED3,1 C9 c9 J8 A& A6 I5 L2 v
                .name = "user_led3",2 G- \) }4 T5 _( f  P: |
                .default_trigger = "default-on",
+ ?% S+ e/ W; q9 X0 c7 W& f        },
& d0 I$ c2 C/ U8 f) S0 ?# G};
/ x8 R  ]( U) h5 Y3 s' Q0 y  I" L, j
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; z5 Q. t9 s, M0 ^) x        .leds = da850_evm_tl_leds,. }# t' `' @3 @$ R- |1 I/ {0 |9 q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" H% t& p- |6 e: L3 U};
0 Q  N& Q' L- n/ Z1 q1 @/ Y. A! F
$ U9 ~# m& n# U& g2 w: dstatic void led_dev_release(struct device *dev)1 d; \+ S2 P6 d
{1 w8 Y" F# i9 L3 K
};( W. P5 u& N" S& o) J
% ?+ K" n  m" e9 f8 \. \$ g
static struct platform_device da850_evm_tl_leds_device = {0 R6 P9 J) K  Z9 {4 g2 ?# j
        .name                = "leds-gpio",+ a4 ]) `; z  K& f, @6 N" t
        .id                = 1,
, @2 J5 r1 z0 G7 H        .dev = {7 ?, R1 ?7 {3 a; d1 c0 w
                .platform_data = &da850_evm_tl_leds_pdata," k4 n1 m+ P8 Q9 l) w* ]
                .release = led_dev_release,$ ^% t2 z1 e8 Q8 D" j# P- Z. ]* J$ W; W
        }* d$ g5 I$ C4 {+ I$ s$ I
};
1 M( N, ]* ]( g8 {# m$ e8 ^! e5 V6 j
static int __init led_platform_init(void)
( a1 w2 M1 E: F7 K{
: U. F( k" y! S" n1 N        int ret;
/ D1 ?0 R1 y" I! f8 f#if 0, F% p* M% B% M5 G
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 f- y8 `0 Y$ R( k! U- V9 F        if (ret)
  R6 J( v- i+ z( y6 K( T. p                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" n: `% |# Z% k! M+ Y
                                "%d\n", ret);
( \$ G+ g! G( l. E% g#endif
) a, {+ T& k- x& h' z8 F4 A        ret = platform_device_register(&da850_evm_tl_leds_device);
7 ]* s' [1 y6 Z. H  C/ @# E' D+ q        if (ret)
6 Z7 i* y* ~7 R9 z# W! U0 `                pr_warning("Could not register som GPIO expander LEDS");
! f8 X% w/ u) H1 @" b# R        else/ ^- @( j7 Q2 P- i
                printk(KERN_INFO "LED register sucessful!\n");
2 `: m* }+ Y  Q( E/ z- {
! `: D/ J; u1 }" G; l" {* X        return ret;' y( V0 }1 u9 d7 f
}5 Q+ K! [7 Q! t- G3 r
* f. s+ i' C9 _0 D3 w- i# x
static void __exit led_platform_exit(void)/ A8 r* m3 O8 }$ Y* W
{- ?# P! X0 u4 ]2 L: n! u0 K
        platform_device_unregister(&da850_evm_tl_leds_device);' T" z. m/ [3 I& G
2 p) W1 r+ \2 E6 }
        printk(KERN_INFO "LED unregister!\n");0 t/ \9 A2 C1 m2 r5 i1 s" e' q
}
& a4 q& C& {! G& W7 k
# r2 ~( I5 d" U1 c5 |" umodule_init(led_platform_init);
5 n: |4 ]+ m' Cmodule_exit(led_platform_exit);: p2 l* f. V$ y
& g6 c8 W& b4 B* r
MODULE_DESCRIPTION("Led platform driver");' k* P1 A  Q3 t+ e! _( i
MODULE_AUTHOR("Tronlong");% X6 t0 Z$ J8 `. [4 K, I
MODULE_LICENSE("GPL");& v* ^' A# V8 z8 [7 z

% A4 f- O9 n% [$ i7 o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-16 04:29 , Processed in 0.039953 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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