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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 O7 L; J2 m) A6 r6 ^( V; l
#include <linux/init.h>
/ b! ~1 R) u7 c2 d# W#include <linux/module.h>" B5 Z8 Y# v1 Z& Z8 a( I
#include <linux/kernel.h>
# j, c7 ~! u: O, ~5 g#include <linux/types.h>
3 Q8 v& [& l+ O0 D7 I#include <linux/gpio.h>. I+ q( P( f. r2 p
#include <linux/leds.h>
1 Y2 N% m2 N. J0 p#include <linux/platform_device.h>
& b& a+ O2 p: \3 J% N/ b( z5 f1 A2 E( K# S3 x/ c8 J8 |& Q% u
#include <asm/mach-types.h>4 r4 f; {: H2 q8 `# k/ \- \
#include <asm/mach/arch.h>
& v9 F2 W& g+ @" t. L1 @' {. v#include <mach/da8xx.h>
# ]6 C9 x) z; f2 F- I#include <mach/mux.h>+ W6 z6 a4 \  s2 h* g# g4 s
' u1 V, G  L# \' @: t/ q
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* {7 P0 g/ ?9 `) k: C* [& Y) g
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) G6 Q9 o  }( f! k0 M/ B, @' a#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- ]) I$ A0 p7 o# q( V6 ]( P
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 r& Y: K2 C+ K% R

6 X# }2 d9 |* Z1 Z6 X) C0 n/* assign the tl som board LED-GPIOs*/2 b1 _: d9 b& s: f, J8 X0 e( P) q
static const short da850_evm_tl_user_led_pins[] = {1 C7 H  r- [9 K, V* E
        /* These pins are definition at <mach/mux.h> file */
% ?8 E. m+ X4 A1 O: R        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! q3 E: F3 w9 S) L
        -1
. V* M7 F8 H8 P, n4 K3 o; ~) E};- E# `) A4 y7 ]3 }3 a3 ~# [3 t3 _
" D% f* A  G6 }0 i9 h- u6 Y
static struct gpio_led da850_evm_tl_leds[] = {. A6 O- Y/ }8 Q# F
        {1 T5 P2 V6 o. v+ k+ p
                .active_low = 0,% d# C% b8 C3 s0 _
                .gpio = DA850_USER_LED0,
2 G) x5 k& F$ h5 X                .name = "user_led0",
5 r- x+ ~: ^! W" A; L                .default_trigger = "default-on",) }$ c6 m2 t% d9 ?, S" G7 v- l
        },
0 L- A- q% g2 B" e( ?+ Y- X        {" {! J+ T, a# K( s! F  {
                .active_low = 0,
( I. Q- H: o2 r3 Z- X. n                .gpio = DA850_USER_LED1,  v5 m; [' m2 R9 Z
                .name = "user_led1",
5 H# A$ X: W2 Q! L                .default_trigger = "default-on",: l# E! x& ]0 Q/ s' h: m, W& L3 O$ |
        },
1 v2 B1 s$ c/ {9 \% a$ q        {) w' C7 a7 r. p7 f
                .active_low = 0,
- Z, e6 \5 x! G% C                .gpio = DA850_USER_LED2,' Y# x1 Z! x- Q& U0 [5 l- o
                .name = "user_led2",
% l" @# A" \% w3 S$ d4 U6 t                .default_trigger = "default-on",2 g5 z  M4 q. l4 r: G
        },
2 ^& f  g9 ^$ A4 I! c7 W        {1 x$ `3 E8 m/ \7 |5 g
                .active_low = 0,
! t7 a+ l& |; C                .gpio = DA850_USER_LED3,% X! {& Z. X% t; d7 t+ K8 s
                .name = "user_led3",
. `' u7 j$ N" O  j& r3 d+ c                .default_trigger = "default-on",; z9 W9 n5 M5 ^6 o- e' S" q$ [
        },8 z9 F0 k! i9 [# g
};( e# I; A6 W5 g$ w
* Q# e9 o( _' Z" q& o4 U
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 q1 T  N3 {$ N
        .leds = da850_evm_tl_leds,
. N# A& r5 P! n! ?4 M. q* |' J7 y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 y* t8 O, y! O- c};
, [8 W, h) `- ^; n' V; Y* [
5 B$ U/ ~0 C# Qstatic void led_dev_release(struct device *dev)4 ?. [% i1 S$ Q0 z6 D2 X
{5 o. i  W* {% x
};
+ E" ~/ J* ?& z: e- C$ N& I1 T
( H, }* U, `- ]2 H) nstatic struct platform_device da850_evm_tl_leds_device = {
8 i2 G1 R6 d" T& g& f. R        .name                = "leds-gpio",0 g0 g: R% M' |& ?! b4 `
        .id                = 1,0 T5 S$ b8 g+ F* v& Q) X
        .dev = {
( t1 D5 ]( z6 F                .platform_data = &da850_evm_tl_leds_pdata,
% h- [+ i- O/ t" b8 n8 S                .release = led_dev_release,6 y4 ]" ~' t8 X5 w; _
        }  S) q* X) H. e& _
};
; F" Z/ T" A1 \
  B# z/ `1 Z( Y. r; o6 }static int __init led_platform_init(void)' `/ v( O( u# d' R. g! k5 @, W+ w6 x
{
5 f; ]: {' e2 c7 |+ v, S2 E        int ret;
2 L  X, e& T0 P* @( b: _# A- q#if 0
! v1 h6 {% K/ G! x, {$ O% l        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( C; H7 _' R+ F& Y  \/ r6 Q) u3 c
        if (ret): O, ^3 r7 ^& }, t
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' W3 c$ M# x# H/ r                                "%d\n", ret);6 y- K* j' F  s3 S- y4 x
#endif5 u' B; x% ]. N! U
        ret = platform_device_register(&da850_evm_tl_leds_device);
9 G( ?  G7 c/ T0 A        if (ret)
& Q( ?& z4 h7 G% N                pr_warning("Could not register som GPIO expander LEDS");
  b+ E. P  J9 z3 z  V# \# ?1 R        else" F( {# t1 ?; z) g
                printk(KERN_INFO "LED register sucessful!\n");* n4 `2 Z# T1 h7 \& C. u* ^  {4 R
7 M; f9 B, X8 t$ C: O
        return ret;
5 D1 @7 P' w! b( X) K+ x% w}' q3 w$ ?& `) [, l2 |
6 ^7 g' L9 ]4 O; @
static void __exit led_platform_exit(void)9 O! [7 v& Z* }3 ]! ?
{
" P+ Q% r' A9 K! B2 z9 q8 s$ w        platform_device_unregister(&da850_evm_tl_leds_device);! s1 m* o, N# F/ e

  R" {! J% l. S  |        printk(KERN_INFO "LED unregister!\n");
' A2 z" S$ V/ y  a3 R- j# }}2 I* T' m# R2 ^& @

+ A. i$ u, s" p6 y6 H  h/ I9 Amodule_init(led_platform_init);3 z. i! J) M( s# a/ j  C: E% y4 t
module_exit(led_platform_exit);
8 B: M2 ]! u2 H+ ?" b2 ~" o& d. V/ i$ G1 B7 x* W
MODULE_DESCRIPTION("Led platform driver");0 ?: h  `2 ?8 t4 l
MODULE_AUTHOR("Tronlong");$ u8 J8 `8 e* z  Q# y) E4 J% d
MODULE_LICENSE("GPL");
6 r) F7 T/ `5 z7 p1 g/ Z' C3 z0 s& b5 p/ n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-22 00:49 , Processed in 0.039125 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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