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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
0 w6 O( v( E! ^, m' {; h- \  p# u0 Q#include <linux/init.h>$ W1 i5 v; T' X. B/ H6 W' P% _
#include <linux/module.h>+ `) C/ m* o' t8 L; @# W% u
#include <linux/kernel.h>  z, k2 I. K( O& l# c( P/ s
#include <linux/types.h>  R% o3 u4 _% a
#include <linux/gpio.h>
. |* G& @* |& a/ c% x7 b#include <linux/leds.h>7 d& s+ M$ M( F1 M
#include <linux/platform_device.h>- T0 L3 s8 w0 t; Z1 q+ y

. t. A. m' c0 s. a#include <asm/mach-types.h>5 U3 W! a8 d. `8 P( a# L5 o% J
#include <asm/mach/arch.h>
  O$ x: {' ]+ g( n  b2 c9 k#include <mach/da8xx.h>
% M' C! E6 J; b4 e8 G#include <mach/mux.h>! f* o" V" y) f

4 r$ m7 f5 @+ C/ G- l0 d#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" _  O- _. y' p3 E. x7 F! `#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 }. t5 \- @) Z+ Z9 K
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, k! s5 R" `5 I, v! y7 E#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 H5 d% b9 L; k& _/ k

7 u& o" L4 f- s& w/* assign the tl som board LED-GPIOs*/$ ^. H: W! U) E5 I! |# v& B% ]
static const short da850_evm_tl_user_led_pins[] = {9 f6 i' M2 d$ c$ J* m0 ^
        /* These pins are definition at <mach/mux.h> file */
8 `' C) p6 E8 o! ~4 G7 M, O0 q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' G+ r/ N) I4 G* z        -1
$ |& b" N2 i( y  M# p5 @};
" l1 O3 @/ h0 G+ i
4 _# E8 d' x  U# L+ Hstatic struct gpio_led da850_evm_tl_leds[] = {5 _- p& c0 N+ t
        {
& l) ~/ w/ _5 {- Q2 G8 ]3 Z                .active_low = 0,; |; p2 t& B  Z* y( K: j8 n8 t" M
                .gpio = DA850_USER_LED0,
1 K5 L, h( z6 M                .name = "user_led0",
5 r. A( L, e5 V) Z# R; n# k+ k, R                .default_trigger = "default-on",. {; Q' H, ?; l; S  C! U8 o
        },/ z  O  O! r4 v/ ~) z" l1 t) r4 V
        {
7 t, I. `& @2 z  W  g                .active_low = 0,% ?8 y' W! n- p5 I1 Q2 v
                .gpio = DA850_USER_LED1,( @) t4 V) Q+ \7 T, Z# [
                .name = "user_led1",
. P$ Y# M0 B) q3 i6 ^                .default_trigger = "default-on",
: L* \2 w& m6 i, z, J2 L' u3 ?        },
) F% J% |* W, l" p1 N* s! }        {- h3 Z/ U$ Y2 ~$ a8 l$ }
                .active_low = 0,
2 T2 a1 D: l4 b- E6 @, }- Q0 U                .gpio = DA850_USER_LED2,
* k4 _3 D! m7 S, G' C' b                .name = "user_led2",: ]* S1 u) V# \7 Q
                .default_trigger = "default-on",
! A1 T) v+ `# P- [9 n! Z( m# f  E5 v& T        },$ y% d/ }- G: F  x
        {* x+ f  b) y' r: m0 z9 }) b
                .active_low = 0,
" G2 a; o$ X& |( N& m, Y                .gpio = DA850_USER_LED3,
3 d/ B" L: d3 ^  H' G" Q# ]                .name = "user_led3",: ]7 ?8 J9 T0 Z2 F; n- `4 ^/ D
                .default_trigger = "default-on",
1 N5 E' s+ ~- ]        },
- W1 @) C2 w0 Q5 D};* ?0 Y+ r7 t+ }$ E; P; |

- j; ?# ~- X' c' z8 \3 `" nstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ N0 R* r5 Y4 [8 a8 s. ~, c+ Y% m
        .leds = da850_evm_tl_leds,
0 W4 B; p& V; N8 i        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- Q8 ?, S/ Q, X: p
};" [- j! s! m# N8 q6 y+ C
) W% ~  P. z$ M- O. g/ |' O
static void led_dev_release(struct device *dev)) T' J  D1 v' U! X: S& @
{1 f* Z. c7 l; v5 v# n* L
};
6 z1 e; B& q8 M5 n& A5 R8 X. `9 ]6 J$ f7 b& T
static struct platform_device da850_evm_tl_leds_device = {4 I9 {* h/ j& K3 i, \4 K9 J+ m
        .name                = "leds-gpio"," W% B" n) p. p2 m& P# E
        .id                = 1,
$ A/ Z# n0 I" p6 O& n8 O        .dev = {
. [8 n& s: d2 g- K                .platform_data = &da850_evm_tl_leds_pdata,3 F  h8 y, I: V2 c9 }
                .release = led_dev_release,
  m' ]9 C3 U" d( v. i        }
! T% w+ F9 c* S# r7 Y2 J5 V3 G};/ ?/ s7 {2 V' I8 g* F

) {4 H; }  @' d5 astatic int __init led_platform_init(void)2 Y( d) d& E9 g& v& y
{* B8 c$ f. p- ^; o( h4 a5 W/ H& j
        int ret;
( K9 {) y0 x* ^7 |  I#if 0; N* h( Z% {3 w4 Q3 u
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  a1 o8 H0 y" W* Z. O4 i
        if (ret)- a  F$ X# s- N# n
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. `2 r8 r; P3 e4 T$ @/ z                                "%d\n", ret);) @2 U/ b5 g. e
#endif
0 F. M% _+ v5 _7 r& b; J        ret = platform_device_register(&da850_evm_tl_leds_device);
  P4 g' ]- k# g        if (ret)
9 f- c+ W- C3 n! X                pr_warning("Could not register som GPIO expander LEDS");5 {2 }$ W! W* K
        else! ^3 V; `: C8 v# P: b; @
                printk(KERN_INFO "LED register sucessful!\n");
* I  ~' @! |' O( m" j. a
. t. v1 ]& p; g6 k        return ret;8 I7 s$ k; q  I: b* E
}3 F% Y/ {0 z- s/ q) C/ [# D

  V' F+ P. Q" f% d9 u* }% \. N5 Astatic void __exit led_platform_exit(void)7 p, [% e- E& n6 Y' k+ H4 x( C
{
# I: h1 l' U- D9 f: q5 Y1 d        platform_device_unregister(&da850_evm_tl_leds_device);
; |5 O8 G- _  P1 a; n3 E% \
& @+ m8 [$ L! N        printk(KERN_INFO "LED unregister!\n");
6 A" Q- o% }2 C. q}8 W5 p' R9 w; V2 C0 H* ?5 E1 g+ K

- M/ h# {6 g; Y- R$ c) s# ]" Wmodule_init(led_platform_init);
! \: I1 l: @& a! Omodule_exit(led_platform_exit);
+ ]5 M/ L$ ]8 i2 V/ D0 V. a+ p! ^; j3 z& Z
MODULE_DESCRIPTION("Led platform driver");6 |; O4 j* A! P
MODULE_AUTHOR("Tronlong");. U6 m6 U, R) R2 l4 Q8 H! |
MODULE_LICENSE("GPL");
! S% I: ?7 ~- T" q! C+ {) R3 i% U$ H, |' l) Y2 ^$ n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-22 13:16 , Processed in 0.041341 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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