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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。* k+ X) X- r6 c$ {6 ^2 @
#include <linux/init.h>
  D4 s: Q7 ~5 u# S/ @#include <linux/module.h>7 M6 K9 a- L! j" J1 S+ j
#include <linux/kernel.h>6 m, }8 Y* F+ m) B
#include <linux/types.h>
" \* z4 |+ N  y#include <linux/gpio.h>) S  {2 H( U4 v. L0 C$ c4 H
#include <linux/leds.h>
% b. t0 K1 x9 ^: P  ]& G- j6 \. l#include <linux/platform_device.h>: K, C' n% H0 }
! D  h# s2 H: V/ m+ l$ I
#include <asm/mach-types.h>0 Y5 I* q: L; o  G: p5 H5 D1 \
#include <asm/mach/arch.h>/ H" y  I) A0 O8 e+ [
#include <mach/da8xx.h>9 X0 d2 D; j8 N5 L( A
#include <mach/mux.h>. o; i6 r- i* y0 a5 [' Q
9 [6 V. r7 l8 r( \! ^3 M
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; N" V) c& c7 }#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); l1 U$ A* ]7 o2 v
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
* q* S9 d0 v  T3 z! b/ R8 L, B! s) \#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): ?5 j- c2 }4 w
0 d  e. X% O0 Y1 ]
/* assign the tl som board LED-GPIOs*/
, Q. n5 ?2 |. d6 istatic const short da850_evm_tl_user_led_pins[] = {1 I6 I3 N& ~8 f
        /* These pins are definition at <mach/mux.h> file */
/ v/ t6 i" q2 q7 a- b1 s9 H        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 G/ B0 U# Y9 g2 n) o
        -1
4 _; z) @2 c- o};- C! \9 F0 f  L6 o0 n- t& c( Y
* e, ~3 v! G7 `
static struct gpio_led da850_evm_tl_leds[] = {
0 W) P+ ~& s+ g        {# H* Z2 @2 k% f/ |& D
                .active_low = 0,
- S: z0 E, x2 K$ o# J' L6 H                .gpio = DA850_USER_LED0,
* H2 z/ E7 w: Y4 o3 C" y1 b                .name = "user_led0",
% E! ]8 v8 f0 v( y# l                .default_trigger = "default-on",
' _* B! A; j- R6 j$ H        },! `& Z% |8 l2 r" S2 l
        {7 e) O& T/ N4 e  \# D: a% L# }- T
                .active_low = 0,% ~( Q" z2 S; Z
                .gpio = DA850_USER_LED1,
% v4 j' U4 f& h4 i4 y& L4 ?                .name = "user_led1",( n; a1 e' O- Y
                .default_trigger = "default-on",8 w: {1 w" h$ f  {" A0 h
        },
7 ~* k% e3 |! b. n        {
9 H9 c% r9 a8 b, M                .active_low = 0,
- ^: J; \  j6 b  y2 i$ F' o                .gpio = DA850_USER_LED2,7 |% e1 N, J$ p& V8 k; u4 u3 h5 h5 w
                .name = "user_led2",8 ?7 c0 s' i3 v2 W4 e6 V9 l/ r  X
                .default_trigger = "default-on",
1 t7 q; c" l* d$ a4 Q" `        },  `2 V$ g2 I# k! T0 ~# [
        {
$ f9 _7 x! B& A: z                .active_low = 0,; a& I% p3 D' u
                .gpio = DA850_USER_LED3,
. [2 V: z  @2 P; I# D1 u* Y: y                .name = "user_led3",
$ _+ p! F5 v! r                .default_trigger = "default-on",
& Q. u0 x' `4 g2 @' r0 @3 N        },
8 @8 `7 \2 a  a& L$ w+ ?7 _};# i% m) K8 j3 J. a) k3 U5 g( F9 A2 k: s

+ o( F0 i4 i' s% v9 Astatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  Q; p5 \2 d9 r) J/ h& F        .leds = da850_evm_tl_leds,
( K  }/ s' d- a1 L2 ], g        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 P5 _: Z4 j4 P1 S5 b
};" {: w/ I6 W4 _/ S) X7 |0 ?) L, W
* `1 |8 q* U* J- L- j4 @" K
static void led_dev_release(struct device *dev)
2 Q1 v3 W: _" z! v- g+ C2 f{1 r2 C/ @/ ~) ~
};
- T# B& ]- B0 I0 ^/ ]) O
; O/ J$ j& f, u% |static struct platform_device da850_evm_tl_leds_device = {
* L8 E+ {  S  o' _        .name                = "leds-gpio",
. P+ b9 t6 C3 J6 y' e4 i        .id                = 1,  J* Q3 @: ]! `) n
        .dev = {
  K5 D! Y5 }9 _  A8 u1 M: b; a& f                .platform_data = &da850_evm_tl_leds_pdata,1 ?1 D$ {- `/ e
                .release = led_dev_release,  O6 Y) L+ u/ N  X3 i" R
        }
7 n, }; {" m* I7 V};
. g4 t# F. z3 A* z9 Q  @& ?% ~; C! f  O3 I) p' U6 R- x5 U
static int __init led_platform_init(void)
9 G8 a5 W8 E, `" {# q{- n2 `7 F; ?( \" L
        int ret;
) }8 Y% C" s& Q( ?6 B/ {#if 0+ ~. n  q: A% U3 d# A! ]5 O
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 J7 `& e6 |- X! F4 A& w  C
        if (ret)0 M- H9 T1 b0 Z. m. g
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ o3 e9 y: _, i                                "%d\n", ret);
/ K3 Z, R# \3 h# U0 ]+ G#endif& Z1 l2 B# l' U
        ret = platform_device_register(&da850_evm_tl_leds_device);8 |6 E( _( `- P2 b3 `
        if (ret)
: Q+ m: M: r8 g                pr_warning("Could not register som GPIO expander LEDS");/ L8 V0 o- Q2 e8 d8 j/ a
        else
, K' g" \( p+ O) O' F! n; p                printk(KERN_INFO "LED register sucessful!\n");
) N) _5 d( g6 k9 g# C5 k4 W6 D* f# h6 o
        return ret;
5 F( A2 V2 S9 i8 K1 P- C}+ [" @! d' w" K8 t
( H: N4 J5 G% @7 g9 M3 a
static void __exit led_platform_exit(void); b& c; H! T* h* P! ^& J
{) V9 g$ {* @5 U2 [: l& _
        platform_device_unregister(&da850_evm_tl_leds_device);* t1 }& w# B+ `0 _" F! r

5 K! n8 b- D& d, q6 |' y( W        printk(KERN_INFO "LED unregister!\n");' v' F  L0 t: G- I& F; Y1 n
}
5 J* g. A6 g- b
0 E4 w- z( d" G9 Z. `module_init(led_platform_init);4 z0 \$ {& C+ h
module_exit(led_platform_exit);* g5 H( Q* X3 N5 ]1 Q. M' q) a! D
5 F2 c3 H2 ~# a: T7 \3 o" S
MODULE_DESCRIPTION("Led platform driver");& {9 H( T' r# Q$ D5 k0 `
MODULE_AUTHOR("Tronlong");9 ?3 s; Y3 w8 A3 @
MODULE_LICENSE("GPL");. I! Q) p$ v" ^
7 [9 Y8 _9 g) F1 ]5 r: K4 p; K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-10 07:03 , Processed in 0.039663 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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