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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' X/ @* O" L) i& |, K
#include <linux/init.h>, }% s: t  V8 ?$ W" K6 \
#include <linux/module.h>
( S% e. n) w7 K#include <linux/kernel.h>
* |7 j3 }' }  p( ]% q4 M! X) Z1 b! R#include <linux/types.h>
4 F$ A2 {, y& z0 g6 A#include <linux/gpio.h>$ R2 G/ R# _+ t7 F
#include <linux/leds.h>2 b& M3 d9 o  t; ~3 @7 D
#include <linux/platform_device.h>
" l" X  @$ ]5 E! E1 K4 A9 u! _2 N# I7 |7 ]% W
#include <asm/mach-types.h>
) Z) F- k  k9 U- u2 ^) W& M#include <asm/mach/arch.h>' w, r; @! Y, b$ w
#include <mach/da8xx.h>
1 {4 S# w1 C9 s/ O0 ^$ s1 t#include <mach/mux.h># z- k! U& }  i1 Y" Y8 B- Z, C
$ d- J/ }3 H' U
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, Z4 h- U1 a4 m#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( z. F6 v$ B# Q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! D6 C, r" D6 |6 Z) g
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); u% R1 h. s# p" o; t

2 p& V7 ?  a0 o8 A. k/* assign the tl som board LED-GPIOs*/6 M! q- ~; C6 p0 }1 v
static const short da850_evm_tl_user_led_pins[] = {
4 @6 W8 k' x) q2 _        /* These pins are definition at <mach/mux.h> file */
5 p! m9 o% d" E. W        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 l/ e, ~0 r4 I/ X7 ^3 y! ~% s' _
        -14 P4 {. [$ W$ s3 |
};
5 ^" H  B: W! c( h1 o+ V
8 ?3 ]( P/ T/ x# i: |$ x% |static struct gpio_led da850_evm_tl_leds[] = {( Q3 Q2 \6 s  z; s. p+ q# S" }
        {
1 p& g4 G& Z" ~, [' R                .active_low = 0,
3 e* o  T/ P! `$ W, M& N                .gpio = DA850_USER_LED0,
' a' B3 i$ q6 z' s9 F1 J5 X# k; v3 I                .name = "user_led0",/ R1 n8 H3 L+ q5 e
                .default_trigger = "default-on",
; q( I, O8 }' Z( C2 H3 r+ x, i        },
# k# H4 b' ~2 ~' a5 P        {
( u) R6 e1 t- ]& N/ G$ w0 K: ]                .active_low = 0,
- p( d0 C3 h0 G! z$ |                .gpio = DA850_USER_LED1,9 |. y' Q" Z5 w* c
                .name = "user_led1",$ ^& X4 N+ l  S
                .default_trigger = "default-on",
' _& _" ~  h7 x9 a/ f) N! B        },
8 K3 j+ u4 H! [& @# u        {" r* _% @% \! [8 C* R1 e
                .active_low = 0,% G6 o1 Z. w7 h
                .gpio = DA850_USER_LED2,
; @  A; n9 p/ @                .name = "user_led2",
6 L9 j, [# R) U7 R  }% R/ G                .default_trigger = "default-on",
; W9 p9 H3 e( A. i6 x! ?" N* T% ]        },9 I/ K9 I, C' Q8 \( _' H9 j
        {" b. Q" l4 N! k  X. J" `5 P7 A; f
                .active_low = 0,- ?7 i# Z+ b  ~1 m" D- `
                .gpio = DA850_USER_LED3,+ G5 a& n, H. D+ P+ s  o
                .name = "user_led3",6 k: t+ Q2 K+ H* [/ Q& S6 C
                .default_trigger = "default-on",( W# U" G3 n! N
        },
2 |" {6 g. P. Q: M% T/ `};! n+ k3 K7 |+ a# v% b9 b- G* l2 U% L
' Z. x0 |  m$ z7 i, ]: W' h
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 f% Z! v; y& e; |
        .leds = da850_evm_tl_leds,3 V0 c$ H( j1 v# c- @/ ?2 ^
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 v/ c+ u( B5 I+ R, V2 j; @/ ^- x# {
};
( J8 B  }8 V4 J" j' R( [( U: X4 L6 s% S* U4 @" @4 a0 k5 [/ W. c
static void led_dev_release(struct device *dev)
5 F0 [3 X1 y6 X) x{" h% ~/ Y! ]& Z( [! G% X
};" _% }5 D  e0 I5 l3 ~; l' y1 O
, l) T- S; A: f# C! d& N' ^
static struct platform_device da850_evm_tl_leds_device = {
3 G* m$ C1 a+ D" l  y5 d! U( |/ I+ }# _        .name                = "leds-gpio",
. Y+ w& v/ F3 ~# `        .id                = 1,
! t7 J+ r) r& l# S        .dev = {% @/ u/ ~1 m( y+ T$ J
                .platform_data = &da850_evm_tl_leds_pdata,
* \( U) p( ~2 a7 F7 e% f% p                .release = led_dev_release,
. E- z4 |2 |' c# x        }
/ x9 @) D0 }1 W( \/ K! I) h};8 V' N( v7 w; R* N. i; p0 k
, s4 i9 G( ?1 Q) V  A
static int __init led_platform_init(void)" V: G- i  V8 @0 P' G6 W9 j
{5 G3 P' X; }# n, O) T* K
        int ret;; f+ a7 t2 `* c" |' n) h% v3 t
#if 05 e; z% ~) }5 p5 X; V; x' w7 _
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" h$ u; _5 y0 u) s3 p( Z
        if (ret)
4 {0 A% F5 D; T                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: K; v/ d# S6 d  B) B; `                                "%d\n", ret);7 o/ `" k# A; O- u, s& `
#endif* Y9 ^4 H0 W4 X4 h) o; B
        ret = platform_device_register(&da850_evm_tl_leds_device);! y( D$ c& |0 r% {% {3 q
        if (ret)6 t) W8 ~: \7 z& z2 e. L6 t3 D
                pr_warning("Could not register som GPIO expander LEDS");
0 v* q3 c& }; Z! ^, Z        else$ l1 |! g; {) c8 u) o5 s3 F9 w3 {
                printk(KERN_INFO "LED register sucessful!\n");
& {7 Q! I3 M' F# T
- m1 r) ]2 `8 p4 Z        return ret;! P7 e! c0 v' ^- W
}1 k% p9 n; e8 p' t4 B
0 |# p7 ^% @9 S+ u+ _& x* o+ w: e
static void __exit led_platform_exit(void)1 \; S; L- v# H, g' K9 H+ D
{
7 c: C9 ~1 h3 y        platform_device_unregister(&da850_evm_tl_leds_device);
6 X  m9 ^+ f2 W% T* C* s5 b4 b: k
, w# C. f& B( ]; z& s) O8 l$ ^        printk(KERN_INFO "LED unregister!\n");
$ _! R3 R* R  v) Q; @% g; L% y/ @}$ v. ^2 Q4 `/ x! s5 w6 M0 }5 x  G

/ N) ?3 L2 b& q& L6 kmodule_init(led_platform_init);
  {# l# [; J+ t) A1 omodule_exit(led_platform_exit);% |8 v: o9 e. q
1 D2 U5 a; W- ^5 M+ a/ Z
MODULE_DESCRIPTION("Led platform driver");
' D5 F$ g  f" I7 p* l. mMODULE_AUTHOR("Tronlong");/ S' K1 s- ?& l& h0 }
MODULE_LICENSE("GPL");
7 `" ?- v1 l/ b, a6 y3 t, K6 F+ P
, {. j* q, v+ ^" T, @; [. Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-27 11:15 , Processed in 0.039601 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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