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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  M9 K+ \! o' t3 f$ X/ r% H
#include <linux/init.h>
! D2 p) V- h8 R# B& P/ e#include <linux/module.h>
' |  T, |% v7 l/ t1 a9 }5 z#include <linux/kernel.h>4 Q- h* s1 c+ d7 o
#include <linux/types.h>
4 {4 }) u# W+ g. A. \/ C. j' K! ^# _#include <linux/gpio.h>
* {" N! j& K! n) Q1 z. W7 F#include <linux/leds.h>( ]" O5 U9 u, [4 v% \- v: D
#include <linux/platform_device.h>5 ?4 w6 |2 z# L3 h; T8 b
& M# b' A+ j* A6 V9 ^3 ?- f
#include <asm/mach-types.h>7 F  l8 m' X- m2 @; I% a  R- `
#include <asm/mach/arch.h>
) l6 K, J- [; m  r#include <mach/da8xx.h>+ K6 s" Z; [. r% l8 z+ T8 P4 b
#include <mach/mux.h>1 I# p4 e; Y3 L- M% O3 z

( B) ]& Q6 i: W#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)( J7 D  E5 u5 p! J7 H- m4 e# l
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 ]  M# I  I2 w, ~: A5 a$ x
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 V# x6 C7 `' O3 w# e
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( t4 Q6 E* p5 L- ?' i4 o0 r' y$ F' ?1 I! t6 @+ ^
/* assign the tl som board LED-GPIOs*/
, P# K# t/ S  F& P( ]static const short da850_evm_tl_user_led_pins[] = {
# V  A* _7 g& ~5 ]! V        /* These pins are definition at <mach/mux.h> file */
; H4 V) T0 f1 Z; j, a+ i% s        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  f6 l. ^: G1 S, O$ I; e  \: F) n        -1. _" }. B: I+ e' R$ T/ h
};6 k  C& ]( E$ `  @& r- l: m- \$ U

* G. j3 i/ |! U# y4 D  ostatic struct gpio_led da850_evm_tl_leds[] = {
! N9 ^$ e3 l; i2 {        {
+ k3 D: J6 N/ @2 l/ g                .active_low = 0,
( B6 h# O% _: |9 {2 O. y8 R$ d                .gpio = DA850_USER_LED0,0 S$ C+ ], v: c& H1 `2 S2 K& c
                .name = "user_led0",& M& Z' c/ J5 u0 q8 K/ i
                .default_trigger = "default-on",
3 g$ ?( K# j% c        },
  t. t% J1 ]& |- R) g1 }* [        {3 x$ e& R3 l+ J% [
                .active_low = 0,5 A1 L% y" x9 t! ?
                .gpio = DA850_USER_LED1,
$ D7 z1 B! V: K: V8 T1 h                .name = "user_led1",
4 N2 n; e% e6 k( o2 C                .default_trigger = "default-on",
9 I& |8 @6 c, b8 {/ x6 [! n        },
8 N1 |( \- z1 j: b        {/ y; d8 E% E' O: u
                .active_low = 0,, t! D/ H  u- Y" l9 P5 I, P
                .gpio = DA850_USER_LED2,8 |3 ~% |3 u( I& o: W7 f3 ^
                .name = "user_led2",
* |8 i0 V7 X  c7 B( D5 y                .default_trigger = "default-on",( L; G+ H. m" x1 _  }
        },) U" W  n" v/ i8 W
        {+ W' ^! s, d& R- t$ [
                .active_low = 0,
7 w# _% ?6 i1 u. X4 j& ]                .gpio = DA850_USER_LED3,
* N$ V. m/ @& v( p5 p2 R$ K+ @                .name = "user_led3",
$ ?" v5 l: G% t- A                .default_trigger = "default-on",
0 o' I2 @& a  C, [9 O! y( ^        },
  g3 ?2 d) w' u; j+ |4 ~};
  E  V, T/ z7 D) m, _& x# k$ o# v1 r: Y" G% [0 o0 X* t; ?3 ?
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, ^) p( c+ u4 ?9 A
        .leds = da850_evm_tl_leds,9 n0 l; s0 v& A% ^+ w6 ]
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  b( r) y2 a( f- U" ]" J};3 X# a3 T6 O1 e) J$ r" F

( ~. C. Q" \& ^: Ostatic void led_dev_release(struct device *dev)
. x  E% h6 G1 q& c0 M1 w6 ?{- q2 A- c# G' R
};& ?: @, i6 e) D7 S3 Q2 v: d

; g' q6 K* O3 B6 |. Ostatic struct platform_device da850_evm_tl_leds_device = {
8 P4 }# M3 b7 B( l: V8 ~        .name                = "leds-gpio",
& a  t2 m) [! A6 M+ Z4 [        .id                = 1,
; A6 \5 q; z4 Z. q        .dev = {
8 M  l+ Z0 m  f                .platform_data = &da850_evm_tl_leds_pdata,
- d1 D# `) w$ K3 W7 q1 r) D0 n. K# c                .release = led_dev_release,
& \! x- _$ T( ~2 T        }$ ], K  B' n- \3 L/ h/ n% ]
};( O4 B% J5 j+ q0 c( f2 v
. f- ?0 q; ]* i" A7 o' b9 i
static int __init led_platform_init(void)# t; F& ^4 A: a2 Y& A" |7 V
{, N+ P' R6 s5 g- I6 n
        int ret;* w- z, g& O1 z* E
#if 0; _5 U% S, C; s/ R' ]
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& S% \3 b' i- Z* f8 j; {- u- c+ A$ r        if (ret)# y/ `9 Y- G4 ~$ e$ L
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( p: c. ~) R9 @7 m9 [- a* o
                                "%d\n", ret);" i6 e' Z3 _0 q. n  w
#endif
, }5 ^* N, s6 S  `6 u* a" ^        ret = platform_device_register(&da850_evm_tl_leds_device);- A* }5 g) y- f4 u' ?$ H
        if (ret)
5 l9 N. \2 o9 X                pr_warning("Could not register som GPIO expander LEDS");4 u$ l8 H5 Q( W; i
        else" R' v2 }+ p: d2 }! v
                printk(KERN_INFO "LED register sucessful!\n");
3 Q+ z, G3 C, _
9 Y8 B9 {- U/ g' ?* Z        return ret;
5 g2 u+ U' O  T6 [& l6 v}
$ Q0 ~: o7 {: m$ a8 o: y" b( o6 \1 ], a# |# B2 ]# |- S* {
static void __exit led_platform_exit(void)
( a( D- r1 S; b5 Y8 D/ F9 n{
8 b4 v( x3 @, A$ J        platform_device_unregister(&da850_evm_tl_leds_device);6 j. u/ t3 i0 z* @- P, U1 k. W9 ^+ I
0 g6 L. j; T9 Y- S. B
        printk(KERN_INFO "LED unregister!\n");3 W7 i. t" m/ T/ \; K2 }
}
# r7 i8 W  C) Y% K- r, ]0 e: V
2 q3 b+ j, V3 l2 B/ dmodule_init(led_platform_init);
: I' n. B" P; X+ ^module_exit(led_platform_exit);
1 {6 N0 E- ^$ m4 g5 ^$ e" S+ a2 n6 p! v7 P' `
MODULE_DESCRIPTION("Led platform driver");/ U% u3 u. I0 u0 x9 O. w( b
MODULE_AUTHOR("Tronlong");
/ \# p* H! F5 Q' r" N% R" R. eMODULE_LICENSE("GPL");
& E. z- r1 E% U1 D# l, H+ Y# Q; v7 m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-2 15:47 , Processed in 0.038751 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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