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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 {  X2 x0 y# {8 t$ D+ c& O& h
#include <linux/init.h>
- X9 ~# Z) ~+ f#include <linux/module.h>
6 z$ j% f% H. }" L) {9 |. @9 P#include <linux/kernel.h>
! N, J, n5 }5 `" ]' f5 P8 a4 f#include <linux/types.h>, s# K1 y! v% T
#include <linux/gpio.h>5 O4 O4 }+ T$ b3 N+ m/ l# U9 g+ }2 X
#include <linux/leds.h>. W9 g, s" Q! [( o$ c
#include <linux/platform_device.h>
) b6 Z# ]. m2 s: B/ n3 ?
) e; F8 C8 Q" ~  i7 n0 h  h#include <asm/mach-types.h>
. O& O1 C" }; C4 U/ f0 C#include <asm/mach/arch.h>
1 O4 ~6 z1 r/ A#include <mach/da8xx.h>
  s' D+ A/ C2 V! ~. O#include <mach/mux.h>) \7 H" S( m( y/ D2 F
# W! K7 _% M4 [: p
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 r5 s* K2 T2 g* s, T
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) X' ~% C  w4 O2 A$ U; c#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& W+ y- ?$ n% Z" ?% o8 j#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 @- i% b' I0 `) Z3 l% Y2 l3 ?

8 h* }8 t; [' h/ Q  ^$ @3 J/* assign the tl som board LED-GPIOs*/
% J- Z/ t- O) B* p% y3 \( Dstatic const short da850_evm_tl_user_led_pins[] = {
  O: Z+ u! f3 {+ h" b* i        /* These pins are definition at <mach/mux.h> file */
; _, V0 I5 z' P+ x: E& X5 f        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 O8 |% ~( S8 `
        -1
" D$ z7 \  O" I. ?6 |* h( d! [};
& u6 M# }! _2 r1 E6 r
1 F$ }  j  f( b; q6 x) o2 istatic struct gpio_led da850_evm_tl_leds[] = {
: F" G' I; K7 m* D        {3 s9 @- m, K1 E! g$ p+ r; B, [
                .active_low = 0,9 P9 C$ q) N& ?2 W0 H
                .gpio = DA850_USER_LED0,
- k- @! x$ D2 a7 f, L' a                .name = "user_led0",
6 t  M8 T' a3 }% f5 R3 [0 q                .default_trigger = "default-on",: r- h& x1 |- w, @6 u( F
        }," b3 H1 T- A# O4 D. x6 l8 ]
        {
4 s3 k( n3 K& o2 A% H1 H- Y) z                .active_low = 0,# A1 t* j7 p* N
                .gpio = DA850_USER_LED1,. {/ f+ K, Q& T. g6 k9 c( r
                .name = "user_led1"," F# \# l1 }* i" z3 E
                .default_trigger = "default-on",
. A2 D, ]5 d! }& x3 n1 l4 b        },
6 c% o/ E; I) O  I8 u$ _5 }: k5 S        {, V8 }4 o( J5 q) O
                .active_low = 0,5 @. Q3 W0 Z/ t* t5 G: P
                .gpio = DA850_USER_LED2,# z, [3 M- M9 L$ K% B8 R& U# T8 S
                .name = "user_led2",
7 P/ {. l: }- s/ g8 I/ u1 `                .default_trigger = "default-on",; E9 f  U9 x; O/ [
        },
* c0 e4 T# X, ~. J        {4 B9 ~6 `; ?1 n6 R
                .active_low = 0,; B# e5 b: @0 `% A% I4 j: G) z4 b
                .gpio = DA850_USER_LED3,1 q8 `1 Q: M1 R  S1 m
                .name = "user_led3",$ D) a$ L1 P, B4 y8 J
                .default_trigger = "default-on",, e+ j! t& W/ Y" m; P& p6 n
        },
! _9 ]) W1 W6 R};
; }9 l5 z9 X6 ?6 w+ E0 b6 y5 }' z7 L7 p7 K3 R, _
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! {! t9 r3 a4 O: ~) q        .leds = da850_evm_tl_leds,. j" a" b) n5 {2 o4 t' c" o0 i0 m
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 L# x; c5 `/ a};  `( ^6 k2 n% @$ z$ v7 ?

" w3 [0 e6 y$ W- k. Ystatic void led_dev_release(struct device *dev)  M. l; ^+ p& P2 o1 T
{
  u* u( M3 d9 K5 `0 \; V% u* i};9 K2 I# J. c. ^. {: e

% e: E7 n; b3 {6 p/ Y7 k+ ?static struct platform_device da850_evm_tl_leds_device = {
, {* z$ m; `4 q9 F. q* |        .name                = "leds-gpio",7 c* r8 C% {; ]; p+ c1 a
        .id                = 1,# I4 Q' e& k$ g; B& l, ^4 n
        .dev = {+ T; I9 A" N$ ^' {; C8 T
                .platform_data = &da850_evm_tl_leds_pdata,
3 v' M2 U" _- T                .release = led_dev_release,% ~1 R$ s/ L; q$ N. g7 V- L8 V
        }
$ A* i/ W" U3 ?6 g: J% V( _};
4 S8 R1 B# K$ T4 ^& T# Z9 P6 s4 s8 Y# D
static int __init led_platform_init(void)
  s6 }+ c' v% N* F{
! I. Z- s' @$ I1 D0 D1 c        int ret;; Z( i7 g9 X) b+ k; k( U- S' W+ K
#if 0" w7 m9 j; Y& u% B
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 c( e, ]( _1 K; d8 Y3 z( k        if (ret)
, F& z& `2 Y4 o2 ^' P                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 K9 X: K5 i% A# L& x/ ]6 c                                "%d\n", ret);
& r: y2 M; r1 k5 r/ q#endif$ z; a! L4 ]. ]( P: P7 e
        ret = platform_device_register(&da850_evm_tl_leds_device);
- H& E1 r+ T6 H, A3 ]        if (ret), ^0 ]# R/ n- c6 A; ^0 B8 M1 a' W
                pr_warning("Could not register som GPIO expander LEDS");
# a+ Q5 p: |" d7 v0 @        else
, t1 t. w9 V4 ]/ N5 p' P                printk(KERN_INFO "LED register sucessful!\n");& R! `3 i# p# m7 R9 H
5 U' h2 ^% s; B) |4 X; a
        return ret;
' Y6 D: S# w) t5 ~" c! i2 F}1 N' U4 ~4 c3 N2 z

& }* Q. w5 N3 S7 l+ H0 d. mstatic void __exit led_platform_exit(void)- ~- i) _; C* p7 ~
{/ X3 _2 r" U# c, }$ ?3 O5 N
        platform_device_unregister(&da850_evm_tl_leds_device);
$ _9 ~" _# y: N/ w; ^* H6 g4 I
- q, ~' v, I1 s! X        printk(KERN_INFO "LED unregister!\n");
& E% L1 ~: w6 H$ l! F}4 p# B+ c; \) `: x* E6 V

& l7 o0 H# \& _1 ^1 Q6 W8 ^module_init(led_platform_init);
. y/ H! Q$ \3 W8 F; [( R) p, z; Vmodule_exit(led_platform_exit);
, a# ?$ c2 v0 b3 t  u5 \
2 o2 A& |0 l, F2 g% C9 z# SMODULE_DESCRIPTION("Led platform driver");) U1 w6 u( X9 S' N* \8 U7 f- E1 ~0 T
MODULE_AUTHOR("Tronlong");
+ _; s, X! T. SMODULE_LICENSE("GPL");0 O: Z/ j$ D- `1 {, F: o3 N! l" ~

, R$ l4 ?0 r8 ?" I  |; D% ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-10 23:52 , Processed in 0.038211 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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