程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, |  w/ X! C8 ?4 c#include <linux/init.h>
! u+ w: h1 G$ `7 d#include <linux/module.h>
  s: K& ^. R& q9 a#include <linux/kernel.h>2 W2 J3 x  K/ F: J0 p0 T8 V9 {) _
#include <linux/types.h>; C" c. N$ j, \$ ]# ^
#include <linux/gpio.h>6 I2 @/ s$ ?5 W& {: R( ~3 t
#include <linux/leds.h>2 w/ _" ^. {! b8 j3 K$ D) e% ~
#include <linux/platform_device.h># e' s$ [1 p% w, i+ N

) H9 s* S; m9 A% y  x1 u: M( B- ?#include <asm/mach-types.h>
, c6 X  v' q* w0 F! a3 H#include <asm/mach/arch.h>
, Q8 I- Q$ |3 \& M3 p# b9 m#include <mach/da8xx.h>
; J/ Y% p+ s8 i5 S8 d- `$ }7 W#include <mach/mux.h>
2 j& I  ]' K8 w, \2 [9 T
6 g! ~  @* A) J4 }6 {  Y7 |8 D. r+ j#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 _" F7 v' P/ N0 }, {6 j2 w
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# N) ?" o1 G& h) T% r' }#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& m+ g$ S3 a6 s3 c7 [! g* V/ `#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" L4 \" p, `# p& b4 W

. m; ^- E: ?% @" R/* assign the tl som board LED-GPIOs*/7 P2 F& N8 o: q5 |
static const short da850_evm_tl_user_led_pins[] = {$ n$ E4 Q" D' A7 R
        /* These pins are definition at <mach/mux.h> file */5 W+ Q- t0 F! f$ u
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 n/ X. Z2 x3 p' H5 R+ u
        -1
9 B+ A6 [- ^& g7 ~2 O};2 l0 K# U; S0 T3 Y- Y/ J
/ m0 V4 j+ _( Q" g. ^% n% v
static struct gpio_led da850_evm_tl_leds[] = {/ ]( ~( T" ]; F
        {- \8 N- N0 }( V3 F: r+ o
                .active_low = 0,
" w) q( I$ J* m% F                .gpio = DA850_USER_LED0,4 G2 C7 N6 |4 T3 u$ Q+ O& a
                .name = "user_led0",8 _5 D; i: N) L  V# ?: l6 w, G: B
                .default_trigger = "default-on",
' h1 K* |2 _4 i- k3 _        },1 v/ |% B+ f+ ]  b" u
        {1 X+ u: d3 }. b! k) p
                .active_low = 0,8 c$ z! M" P3 n
                .gpio = DA850_USER_LED1,5 s2 Z. d+ @5 _
                .name = "user_led1",! {* ^% v- q3 m. V( J. n9 c( Z; `
                .default_trigger = "default-on",
0 P2 I* H+ J0 Z( J+ d% Z# J7 C$ k        },
) d) N9 r! t2 G- p        {: ~% K; O7 O! f6 B. Z
                .active_low = 0,- m& s, u) R0 [9 O3 @
                .gpio = DA850_USER_LED2,; X! l7 |- ^! l) x  M+ m6 H
                .name = "user_led2",* R( R, `1 @- C2 K, p" i
                .default_trigger = "default-on",& A: t3 D2 W% t! R1 ^7 Q1 `% ]0 |
        },
. a$ ?, w) ~3 }! V- Z- a        {7 x' l. f$ J% [, J) l
                .active_low = 0,: ]: r: s9 I& I; Q+ P7 D; h0 `
                .gpio = DA850_USER_LED3,
; Q! ]) S( K% \! ], f                .name = "user_led3",
* r) f  t9 h1 i6 p3 J7 L+ w2 u- S4 {                .default_trigger = "default-on",
+ T& H* \5 B( G. E4 m        },' c! A; d' F8 n0 V  @( Z
};
) g1 W% E+ P1 O1 e" W; u5 E3 [8 U$ f
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! D$ ~  a1 R6 k+ \/ Q. ~0 h% [
        .leds = da850_evm_tl_leds,
  u* ~2 Q. a) y7 B8 T: T        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  y5 e3 v' t3 C% R};
" k4 _  [" x0 n% v; S. {2 N2 v
5 I/ B6 |/ N& l# y$ V! _8 Zstatic void led_dev_release(struct device *dev)- |- }5 j8 b  q& t" f
{9 P0 P/ i  u7 ?  t1 U+ N  r7 n
};
% A. A0 ~' w9 v4 F
( q0 v: G6 K3 S$ R  tstatic struct platform_device da850_evm_tl_leds_device = {1 d4 L( l* _8 L) c) \7 c. {
        .name                = "leds-gpio",
/ e$ K& ^1 I- B( p  n7 ^& [        .id                = 1,, b9 |4 c' c1 [! S6 V1 ?3 H) W
        .dev = {' y! v, X5 m+ w3 i# G7 _: g
                .platform_data = &da850_evm_tl_leds_pdata,/ H8 H/ a$ v/ r5 \$ b& A. G% V3 Y
                .release = led_dev_release,
3 J, X' Q1 ?( R        }) [$ P, z4 ]! z. Q
};
# n+ t- K, y! G7 ^* o
0 w8 u# G$ L7 t1 N5 Vstatic int __init led_platform_init(void)
7 t3 G) |, S$ j% x9 V' h5 b7 o7 p% s{5 W8 v0 ~8 s' _; [( p
        int ret;  K1 @7 g1 t1 |. n
#if 0, w: v7 B6 P& b8 r
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* c; D; Z/ Y8 b  s5 y7 h
        if (ret)' s. r/ d1 x' U6 A' l
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* }% S6 H: g6 l  v' b0 P: ?. M$ A3 j
                                "%d\n", ret);
  y' P; [2 l  I* T0 [7 m  H#endif
  k" W. m6 G1 t; c6 M3 P$ I4 k+ d6 a        ret = platform_device_register(&da850_evm_tl_leds_device);- s  g! m$ z& K5 U+ U. g9 |; t6 \; U
        if (ret). c- K7 d# e8 U7 T% S. E3 z; f
                pr_warning("Could not register som GPIO expander LEDS");
  |/ T; E: o  t% J, S* V  |/ c        else) D3 \. m) ^  L; o2 j: ?
                printk(KERN_INFO "LED register sucessful!\n");
# s- K; L4 U5 m; F# m, f
  e8 y# U' @/ j9 n: J3 ~/ |* b        return ret;7 R- X% e+ j& p, M2 m3 x
}- N# D! e* B6 S0 W5 J

7 |1 C8 K, A0 v$ }static void __exit led_platform_exit(void)9 N, a, W& k$ p! t9 m" i  }
{
8 V( M7 h: c1 x7 e; h9 v1 k" j0 `        platform_device_unregister(&da850_evm_tl_leds_device);
  g8 O  D& m* Z/ w: r+ n; q
( V* V; o+ A! _! L- ~        printk(KERN_INFO "LED unregister!\n");1 ~2 ?+ c) l9 a. Y* H+ f& M
}
+ q  [/ ]8 I4 F) c+ H% Q0 {% K% p: ]4 t( R0 _
module_init(led_platform_init);
" D0 x0 n: f0 P9 Dmodule_exit(led_platform_exit);* c5 ], {- h' \9 ~
- ~1 z5 P$ t% O* L
MODULE_DESCRIPTION("Led platform driver");
3 p' h$ ]3 i+ b9 P& a0 lMODULE_AUTHOR("Tronlong");( n; k! W% n4 ]2 N' q# g9 L! k
MODULE_LICENSE("GPL");! _) x, q; t* D4 Q2 t2 Y

2 m" D7 i$ F3 q% J$ b% A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-2-7 18:29 , Processed in 0.041740 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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