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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 c- ?4 v& M/ O; g#include <linux/init.h>! S2 f" j0 m) w( M
#include <linux/module.h>
, y1 m. {$ g! P; y8 Q/ g$ b9 u$ e#include <linux/kernel.h>
# ]# ^. J9 x. H9 {#include <linux/types.h>$ V( i- }+ i8 ?0 p. d/ _0 }
#include <linux/gpio.h>/ [/ Z! O0 w' {; p! f' @4 B
#include <linux/leds.h>
/ ]+ i! G+ ^, |#include <linux/platform_device.h># g- U0 z1 N" ?- T. n
7 B! B; Z  o" N% w, x3 [0 U3 i
#include <asm/mach-types.h>$ O* E) d6 a  g% `; W6 L! D
#include <asm/mach/arch.h>
# r; m$ k( J' j5 B8 F1 f#include <mach/da8xx.h>
0 B, l+ E8 S& e#include <mach/mux.h>
) y- q* \4 \! x" M
4 _; o" C. W1 K6 f#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' M$ r5 o4 C$ A/ l( T$ m
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 a1 ~, U. ]( [. V#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, T: j% X$ ~; P1 @& j#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 G% s, b0 j# M. ~6 y
, N- d) V  M: I3 b/* assign the tl som board LED-GPIOs*/7 y2 e7 X6 a$ `: m8 ?/ ^8 t% G
static const short da850_evm_tl_user_led_pins[] = {! a6 p- }. ]7 U
        /* These pins are definition at <mach/mux.h> file */
- P/ f: @1 @; S- R3 W        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,# H' w+ k! k) m
        -1  L  t( a2 D8 c0 Z3 J, l
};" \) L, K7 |+ B. s
  z' `' f" p2 H$ O7 L( @5 P
static struct gpio_led da850_evm_tl_leds[] = {: K* Q" L& s% i+ \
        {; u0 o4 W1 G8 A5 ]; [$ G7 o
                .active_low = 0,
4 ?+ c8 S' i; l( Q, [                .gpio = DA850_USER_LED0,9 M3 U- |4 ?: \- @
                .name = "user_led0",, O* x( k# ^* w( G$ \) u5 D% X% o
                .default_trigger = "default-on",0 }( }- G' C4 F, ]6 d/ z! u8 K
        },
' U' N5 s8 M" w        {
" g' z5 p) c7 i+ ^1 F                .active_low = 0,
& `3 m4 s: ^$ U6 q1 D7 x5 [& x6 d2 x& {! F                .gpio = DA850_USER_LED1,2 r' Z" t2 l- |1 i4 n/ G
                .name = "user_led1",
8 L' S5 e2 V2 h' S( d) h                .default_trigger = "default-on",
8 ^" p$ }' }" O        },
3 s8 k/ X2 ~& d# u& O+ S        {- O% }0 @& Q3 V# @4 R/ l
                .active_low = 0,; b* ^2 W+ n8 D% Z8 A, i
                .gpio = DA850_USER_LED2,! j) M/ h3 ^) Y
                .name = "user_led2",
6 l" l' d4 v! n8 X& L9 x' R                .default_trigger = "default-on",
( Z* M+ R- [0 N1 j( T( @4 R        },
* u- Y$ w! R. [7 x) r9 V3 i        {- c7 ^3 V1 r% G
                .active_low = 0,
3 O' v4 V4 g; Y9 Q                .gpio = DA850_USER_LED3,4 {+ Q2 A0 L2 o" S! G5 P
                .name = "user_led3",& v7 H& K: _  R) B+ j7 V
                .default_trigger = "default-on",3 A. ?) Y+ y' b+ q2 V1 y
        },$ |9 K4 x9 ^) W3 H0 k( ?: ?: P3 n" N
};
3 E8 f5 ]9 G9 A" F* G1 W/ b' x, M1 ~- ~+ J; P7 m
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 g6 V3 L1 F- L7 r        .leds = da850_evm_tl_leds,! _8 ~. s  Y' X! }8 n" D
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 n: C2 @/ ~/ {9 L# S$ P" g2 W};2 f' j( @- l6 A' T2 [
- |; j$ _) x  h9 m& U9 B; u
static void led_dev_release(struct device *dev)0 o; H) U& `5 x  t) ^
{
  H! l- U& w' _};& Z5 H% Y5 C% w/ E( R% L; e
1 O9 E& O. A( C! J/ P
static struct platform_device da850_evm_tl_leds_device = {( {4 e: _) B; J8 L) J: ]
        .name                = "leds-gpio",3 |1 q- X& i5 \. o  W; Y3 I
        .id                = 1,2 R6 r) g8 c7 l( F! E" B3 z
        .dev = {/ f  y1 B/ u: ]5 u
                .platform_data = &da850_evm_tl_leds_pdata,8 o6 s3 p. X2 u( Y) c) C
                .release = led_dev_release,
) z, X( }* S1 Z0 l$ q5 W" ]6 J! I        }
9 D2 |# r9 W$ v8 y};
- X9 @* P0 v; c. b) u& s. k& r! \* G. H
static int __init led_platform_init(void)
+ j' w( \: K( `{
* T5 x4 `' L- O' s# @& t        int ret;- |4 P! `) f/ e
#if 0. U! n' L) o) o9 _& f5 ]  W/ m5 a
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 C9 M1 K; ]. V2 e2 t        if (ret)
% X, t! a4 N+ P! l) y6 ?0 w                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 k; N2 v! `) b5 [  n+ W' X
                                "%d\n", ret);; o* U' K* s) w7 l/ ]( d: `% I
#endif
7 Y9 _  w( P2 \        ret = platform_device_register(&da850_evm_tl_leds_device);
& b, _, P  P1 R" d3 h4 C        if (ret)
9 C+ w, g5 d+ U" F+ v9 P& ?                pr_warning("Could not register som GPIO expander LEDS");8 Z1 E$ g# Y- }+ u' I+ Q
        else) h$ J6 B3 i" F6 l
                printk(KERN_INFO "LED register sucessful!\n");
. P" k; o# ?+ B: ?6 ]8 t) R5 y9 e
, K0 L5 m1 S1 R7 q9 k1 A        return ret;/ q" X, h, |% s9 m9 X: J; a1 o* C
}8 r# {8 ~( i7 y6 h. u+ {
1 l$ W& J) X# u1 M6 S$ Z
static void __exit led_platform_exit(void)
: e: Z5 [5 j/ G2 w* x+ _{$ Q3 W* O7 G' j) _: y1 ?8 P5 y" l" o
        platform_device_unregister(&da850_evm_tl_leds_device);; E! a0 \2 i5 `/ M1 u8 W
3 q4 A/ g: W1 v% e' u
        printk(KERN_INFO "LED unregister!\n");
# j+ _, z( O% u. _% M}
7 D. G1 n; h* ^' q% g1 w3 z8 A  ^) j8 H
module_init(led_platform_init);
/ j3 Q* ?) l1 Y3 L* q0 v/ r' `3 Jmodule_exit(led_platform_exit);
/ W5 f0 q( I8 E. l% S& u. t, [+ d3 W, {
MODULE_DESCRIPTION("Led platform driver");
7 M9 T0 x* ^( L$ j* K' O. L7 `MODULE_AUTHOR("Tronlong");6 `. {' ?' s8 t  K" B  j
MODULE_LICENSE("GPL");
  D% \. Y) a& S' F4 _, u
1 g; e# t/ F! {0 v+ ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-26 09:00 , Processed in 0.037743 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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