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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 J9 \6 w( a0 \#include <linux/init.h>( L3 B, n/ R4 B. b8 X/ G$ n
#include <linux/module.h>
2 A9 \$ h+ [) k+ E: E  E1 M4 i#include <linux/kernel.h>6 C+ R, r% z4 R3 F: k
#include <linux/types.h>
" {- ]7 O; o9 v$ |1 O7 v% x* _+ [#include <linux/gpio.h>' A$ f1 k8 W& w8 g
#include <linux/leds.h>
* U7 C6 O6 o( F5 n#include <linux/platform_device.h>+ R, s9 i9 L* |3 H

* ]" A2 {5 \* t9 ?( \1 W1 v7 L1 W3 \#include <asm/mach-types.h>" g" e* Z6 ^; T- Y, I8 H8 v
#include <asm/mach/arch.h>7 e; p3 B) w8 Q7 @
#include <mach/da8xx.h>3 h) J  o$ W/ R; j  d. O% j* i0 ]1 _
#include <mach/mux.h>
: h: `2 {6 J; v5 C2 x0 F( O1 S2 V0 i' h
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, Q2 o4 j4 R. ]% o- y$ _& {$ h#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 o( p5 \; n9 K. V4 n: t( n9 g, g#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 F, _% T. _0 l# N
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 j+ ?1 k4 [/ L' t/ e3 v( a% Z# o% n, C9 C" s! o5 N
/* assign the tl som board LED-GPIOs*/$ |5 j& Y) m0 }4 \+ Y
static const short da850_evm_tl_user_led_pins[] = {* `, i# B7 Q4 d" j! _( B- z4 T
        /* These pins are definition at <mach/mux.h> file */% B( ^3 z! |% v( ^# [9 }% I3 F: T5 l
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,& @( L3 g( }, m; S8 V5 q3 g0 o
        -1' H( h1 p4 c2 W1 a& }- N
};
4 t& ]2 l& s( U) k# ^9 B& P
$ [0 Z# ^/ I) _6 S8 ^# K5 [- Sstatic struct gpio_led da850_evm_tl_leds[] = {
' e3 h+ c/ t5 @& ]+ m6 I' ?        {, P6 n9 b/ z2 Z; B$ M" n$ w' q
                .active_low = 0,! ^) k4 a2 U# _
                .gpio = DA850_USER_LED0,% f8 |; u" U1 b4 Y/ M- z& `
                .name = "user_led0",/ M% K& o7 _) Z0 S3 `. W2 f$ l
                .default_trigger = "default-on",
6 P& ?7 |" c: _. _7 w2 v. `" n        },
; j" N0 N- A! Y; U8 [/ q( n        {
! J' r: R0 \$ u' _                .active_low = 0," ]4 `; C, E3 f' ?$ E
                .gpio = DA850_USER_LED1,
  E+ I/ O& ^( ~" G7 C                .name = "user_led1",
" P, H' {. {/ t% y0 F                .default_trigger = "default-on",, B" \: F5 B6 O. V0 b7 x
        }," `" Z0 c/ [. o( n( @' o; \, g
        {
0 k4 R! Q" j8 n! ^0 X                .active_low = 0,
) U2 V! n2 b6 ?( @! B! z: s+ d                .gpio = DA850_USER_LED2,
: ~" I! ^; H" H% D; Z& N) o2 A) A                .name = "user_led2",
. @7 ]* G$ G' O4 f                .default_trigger = "default-on",
* ^0 }' j" q, i: P( l  U        },
) o- y0 a" J$ F% K! V        {; a8 g  x( l8 Y3 K
                .active_low = 0,
# E5 p" a: k9 z$ J, S/ m                .gpio = DA850_USER_LED3,* |- m+ v% v6 Y# a# |9 U
                .name = "user_led3",2 {# |( R* Z- W) r9 w
                .default_trigger = "default-on",* O4 P9 Z; b! P& a9 U$ h- @6 `: y
        },
! G7 _1 w1 v5 B7 l* @$ e. D! X};
) ~4 [, K  T0 a9 J, s; `2 U$ B4 s5 _3 w. Z9 o( \: |
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {5 `9 ]8 D& x2 o2 v# z! K
        .leds = da850_evm_tl_leds,% ^4 n1 o( t% q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( b- B( A, A! }$ [  [! h};
- ^. e% y7 ^. s) ?$ U
$ M. q' C# z$ \4 e6 `% X. K. I8 m: Zstatic void led_dev_release(struct device *dev)
; W1 n2 m" B5 u; L% W% e3 J7 g{
! B, Q6 R/ S  ~0 F3 U% S};2 R5 L3 s1 I! p

) X* R; n5 {! g, I( ^$ t- ]* `static struct platform_device da850_evm_tl_leds_device = {
4 q9 k; Q1 s1 m( o' M        .name                = "leds-gpio",
+ I5 z* x& N$ G4 i9 x# h        .id                = 1,. C, k" Z4 H. t0 [; {& U
        .dev = {1 V( u: N6 J( U
                .platform_data = &da850_evm_tl_leds_pdata,
+ W7 b; c) P' P  g$ }7 ~* K                .release = led_dev_release,
& G* x# G, a4 _. y% l        }  B" k" w7 [- Z) n% U7 o* f
};
1 |: A2 `/ E7 D$ W' y0 F
; o! N2 j" m# o0 _static int __init led_platform_init(void)* N, D" `- N- O+ W* S" y; ~8 k
{. K" ]* f( j# j( C7 b' B2 o6 S) N
        int ret;
: d4 _5 n8 K, ^( \#if 0$ E1 b4 X) h+ U, S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
0 _% H7 Z8 `0 _. }% m        if (ret)
0 g- F7 k( O- p/ n  r                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" E. N1 e% p$ b                                "%d\n", ret);2 }/ y* x) |5 F7 Q5 {
#endif$ R  R" n, h+ n% u7 a" k
        ret = platform_device_register(&da850_evm_tl_leds_device);. Y- O& @; \9 u9 r4 y7 H5 |
        if (ret)
( K2 O2 p; {% {* n. {                pr_warning("Could not register som GPIO expander LEDS");6 E, }; h+ |* h0 K2 m' I1 `. m
        else+ W# A: W  K7 l
                printk(KERN_INFO "LED register sucessful!\n");6 c6 a7 u* I/ S7 _
3 E- C) j' x- j. P
        return ret;
3 Y$ P& F" E6 J% L# q* i8 Y0 k}* i+ Z$ W. N2 k+ R

/ B1 L9 _2 k4 ?9 G0 Tstatic void __exit led_platform_exit(void)
) _* Z, z3 E# O/ T6 A2 Z4 o0 B{- N& `6 M& N# c1 a: `% d
        platform_device_unregister(&da850_evm_tl_leds_device);
- @% L5 m: i' q- J( `
4 F6 `4 M( I: y" C        printk(KERN_INFO "LED unregister!\n");
, N3 N$ }! m  m) m}
4 _; M* [2 d+ d# Y* J' A
5 R& Z% ]4 _; X# zmodule_init(led_platform_init);( v% O8 j+ Y& T7 A/ c
module_exit(led_platform_exit);
  l* x2 a5 a1 X- P# C% b8 C6 X( q1 Z
' }( F  Q6 r; q( F- u) }MODULE_DESCRIPTION("Led platform driver");0 u: }4 Y+ G6 b* D
MODULE_AUTHOR("Tronlong");
/ W. e4 }5 T& K9 s! `) h, r# r& H3 HMODULE_LICENSE("GPL");
& v: T( `+ C. w' H1 v0 M: S3 ^* }
3 S2 r, ~! ]( [+ Z  A& b7 s. }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-5 13:56 , Processed in 0.058246 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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