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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" w0 M: I  s% u% J1 n#include <linux/init.h>
1 \/ c3 A' _$ n2 R7 ~#include <linux/module.h>
) U" Q+ Y6 ?( }#include <linux/kernel.h>+ J  X% p" ~3 j1 h" ?
#include <linux/types.h>) }4 ^: b6 g9 t  N) j
#include <linux/gpio.h>
. m8 Y0 i1 S7 C% Y, A( w; d#include <linux/leds.h>4 ?9 K; Y7 `. ~  F9 [% {
#include <linux/platform_device.h>
; e, r/ N9 ]# p, _: S  Y3 W5 a+ d4 _8 G& H5 Q$ c
#include <asm/mach-types.h>4 p' d4 l; }+ v+ z6 \$ a9 @
#include <asm/mach/arch.h>
( X$ G7 B1 o5 l#include <mach/da8xx.h>
1 r: I+ V$ m0 P3 h/ p#include <mach/mux.h>
6 a1 P: _8 l* }5 R0 j/ M2 I' V" T+ N/ n- m% t* W
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) H& w, ^' k  {& \# H8 M' p8 u8 a
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 F+ F# E2 E0 ~: C
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ z/ X' P4 l$ o$ K! X* i3 ?
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" i/ {- D, t: G4 c! a7 N
/ ^& w5 K' Z6 t
/* assign the tl som board LED-GPIOs*/
, F" i1 b2 O: V$ f7 }) vstatic const short da850_evm_tl_user_led_pins[] = {5 X# {+ n  U% F! u
        /* These pins are definition at <mach/mux.h> file */
& h4 X. E- [& S; I0 Z+ ]        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) b, K5 Q& d; b  S% W        -1
7 W3 M/ ]/ k, Y5 ]6 j0 O};
8 ^' y6 T  v  R; n4 `: ^& T. C) G5 i2 x) @+ d
static struct gpio_led da850_evm_tl_leds[] = {6 v0 O5 z7 Q% j( B0 t8 w0 j
        {
+ u5 ^. P/ J& X: ^9 K) i& n                .active_low = 0,
* {( x# p- C; S! P5 Y                .gpio = DA850_USER_LED0,
* M1 g' A2 [  }- p% r7 z$ V                .name = "user_led0",# ~, `/ ^  h: V% v! |9 z5 J
                .default_trigger = "default-on",1 g5 L. C. n& ^  o0 t
        },/ u8 n( `) l( J& D9 k
        {2 m* G3 _* x, e1 e+ d  t* j; E; b
                .active_low = 0,# j2 v1 u/ x" z9 Y) r1 H
                .gpio = DA850_USER_LED1,
1 _8 k6 G3 C" _* D                .name = "user_led1",
: V7 q5 |% q+ H$ f& ^' i9 D                .default_trigger = "default-on",0 Z+ R1 R% T( x
        },+ J* R* M6 @. b' t% Y2 m
        {8 A$ v% P2 B: T6 ]7 _7 p6 {7 a
                .active_low = 0,
2 {" d7 s) X0 V! s1 B                .gpio = DA850_USER_LED2,
6 D4 f1 v8 A* X7 L1 q                .name = "user_led2",& e. S8 w  f' J
                .default_trigger = "default-on",9 Z* z7 k; t0 e& Q3 r
        },
; f: z, P% n$ y$ Y2 T: g$ v1 n- z        {
$ q9 n, d0 u( B; G! K$ @6 V$ y                .active_low = 0,
- T9 v$ Z/ P0 p9 Y# f0 `* m                .gpio = DA850_USER_LED3,5 E5 u$ \/ T7 k6 ?
                .name = "user_led3",
/ R6 [! W. l- t' \4 R0 b* v                .default_trigger = "default-on",
3 r* U- i/ ]! a        },( d0 E# i+ C" ~# \5 V
};! |8 l8 |2 s) p# F, b$ q
* T) [  V- }' }  n: q
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* @# p) @/ F. q, e1 h
        .leds = da850_evm_tl_leds,% Y+ \2 t  ]* v( o! L: w3 ^
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& c9 o2 N' m$ O: A( x  ~  n};
- r& K. t. G$ W% _) S7 t* _3 J9 E  ^$ ~9 i7 ?# f
static void led_dev_release(struct device *dev)
- R4 ?) w. p$ u1 z5 M* D{0 A9 n* A- N( S1 `; q* e$ _% k9 G
};
/ p5 z0 V4 M8 N" `
& z: h  D3 X' sstatic struct platform_device da850_evm_tl_leds_device = {
+ m- r" f* B! \        .name                = "leds-gpio",$ f" p. X. P& c# M
        .id                = 1,
5 ?" j8 v7 X  w, N: |        .dev = {, u8 H6 ?# s' I5 x4 }
                .platform_data = &da850_evm_tl_leds_pdata,
$ B) ~. y3 {: {: v: ]                .release = led_dev_release,
% p9 B6 h3 A1 Q4 k) C6 t- w% N        }& S/ A/ Q- E( G
};
. L- e2 a  M/ E" o. X, ~7 d3 X0 l' B1 l# H
static int __init led_platform_init(void)
# }: P5 H, r$ L( O" Y3 U2 `" U{: i" b2 h$ [& y. v$ L8 J
        int ret;2 F) B4 ]/ t! a; f( U- w" @
#if 01 W5 \: m6 \3 J) u. K$ c) ^
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ _" q/ G" V& x! a! [        if (ret)
6 D; l, G) a1 ^$ p5 M                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% r' b1 J: ^+ j, I% e                                "%d\n", ret);0 l+ p3 a. g1 T7 J* b) t) e& y
#endif2 f$ k& D$ s: |" h
        ret = platform_device_register(&da850_evm_tl_leds_device);2 |, x5 l; E' O0 ?# x2 F1 f3 ~
        if (ret)
6 d5 a) g  l+ ]% B$ L* n) I5 F                pr_warning("Could not register som GPIO expander LEDS");4 Z& I3 b2 Q' n8 f/ F1 `
        else
/ z5 o! V% K# P& e: Y  ^& V                printk(KERN_INFO "LED register sucessful!\n");
/ c! n/ b) v. ?; _( i+ ~/ l! y, U9 D  _. F0 O9 M: o/ Q8 W* n
        return ret;
% \  I( O  u9 o}
8 r" R) \" O! L" h2 w4 t2 x3 [
9 R' L7 U, z) g) S. Q. qstatic void __exit led_platform_exit(void)
5 ^2 b8 z+ `# x* U( B) b{# E2 n. Q/ ]" M$ a  N  {0 G% C* N+ X
        platform_device_unregister(&da850_evm_tl_leds_device);
, n8 G( [. _8 `! o" y2 u0 f5 o# {% R) l
        printk(KERN_INFO "LED unregister!\n");
) v8 ^' ?1 @, S; G7 l}9 N3 k* J- a" v% C
7 o# U; F1 j' Z# ~7 U# @( p
module_init(led_platform_init);
5 Q2 ^0 s) L; U4 Pmodule_exit(led_platform_exit);2 {. A7 n0 q9 @, m' S

* |3 m$ A; l8 c$ z$ KMODULE_DESCRIPTION("Led platform driver");
% C; J% V9 c$ r- I4 FMODULE_AUTHOR("Tronlong");
3 B3 j# E, Y1 DMODULE_LICENSE("GPL");
, q& V0 E! V8 A3 H9 _, j; B, G, S/ p+ q8 s5 m3 U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-13 18:11 , Processed in 0.056338 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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