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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ W: G* V; L4 g! c" @$ L#include <linux/init.h>
; ^2 {2 |: r* _% g  j6 i$ ]- r+ ]" Y#include <linux/module.h>' D: [3 E) U8 M4 x' b* z% u7 Y: `
#include <linux/kernel.h>4 p* M8 _6 N/ ~) P9 ^- v5 k
#include <linux/types.h>0 G- ^% ^$ `- S  j- C. m! }
#include <linux/gpio.h>1 z4 X' r; M! V; a8 @+ o
#include <linux/leds.h>
* ^8 a. v* b/ w- K& Z& c0 \#include <linux/platform_device.h>
5 F7 i* t1 l, f+ ?1 @2 a3 {, W
) U# \0 p9 L& Q6 p, I- V! q#include <asm/mach-types.h>
! g  t! R6 Y3 f9 \! E#include <asm/mach/arch.h>
5 P4 B) j: {7 R" `9 l. G4 _) Z#include <mach/da8xx.h>
# g% _% Q) @& a! W+ u6 P, X#include <mach/mux.h>, X. }+ Z8 C+ ^8 L0 A4 A# S
% ^6 q# Q; j3 \& c, O
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- m/ F( b3 }, g#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) K) ~: g& C5 f7 O0 U+ i5 }0 v
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" w( v7 d1 @1 m9 a) z7 {2 M#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 y: ~6 g) @9 W( o8 i: q9 F( u
: [3 [$ ^4 B2 U0 u0 g/* assign the tl som board LED-GPIOs*/
! ~) V* K) [) T  U# o1 |7 Lstatic const short da850_evm_tl_user_led_pins[] = {
. C& }! m5 h- E% N7 e" \        /* These pins are definition at <mach/mux.h> file */
! x& Q" g4 o- A! ]  F2 D, f        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ J2 P8 n  W% X" k/ P
        -1# D8 c, i) B1 Y: z% F1 \
};- h, B# q% ]" |" l

: F' H5 Y5 N& F+ a2 w$ ^9 |5 Istatic struct gpio_led da850_evm_tl_leds[] = {
5 E6 r4 m8 p$ y6 u# ~5 t        {% ~& |3 u7 Z# Q& G- W) l: s( ?
                .active_low = 0,- S; j- t" \4 i; O
                .gpio = DA850_USER_LED0,
% j5 k  ~: F: D' Y9 Y                .name = "user_led0"," \; Z0 G$ \3 v0 _
                .default_trigger = "default-on"," ?( g/ Y3 f' `% B1 j9 V% I; z
        },
" J; R! z$ x9 R( g4 L1 `; D        {! _& o8 g, l4 C$ O) J' p& O% u
                .active_low = 0,9 z1 E# y/ m+ l
                .gpio = DA850_USER_LED1,
! n# N1 |, J2 I7 q( a                .name = "user_led1",
! Y  R  I0 E% D8 A+ X. p* ?                .default_trigger = "default-on",
. M' A. ^  k3 f& v5 H' D        },2 P7 `/ K7 K8 S* M' R6 q5 a
        {
; Q# ]' v* Q( p9 V, X                .active_low = 0,/ n2 w) P7 Q  W9 k# e+ G" T
                .gpio = DA850_USER_LED2,
# y& \" c; O. ^- Q; }2 I) r                .name = "user_led2",
  ?3 }' u& W  O1 j0 b                .default_trigger = "default-on",
9 j9 j' N; ]3 Q' |# q        },+ z: L6 c$ q' M0 K7 C, }! h& \
        {
3 _4 [8 m) O9 N4 u                .active_low = 0,0 h& a7 t: m$ q% b
                .gpio = DA850_USER_LED3,
, t* A- l: Z( C1 o# ]  r7 F                .name = "user_led3",
, u: x/ o9 }6 |2 B: T& i$ l7 @9 w                .default_trigger = "default-on",/ n, F# b& j9 n! [8 d( W
        },
8 \( Z9 a  J- M+ _" `/ u};. ^! N$ ?: v/ u! f6 ?$ O

) X: E- v0 P1 |# a3 B1 r2 c. ]static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 M9 J) W7 U  N, i: K
        .leds = da850_evm_tl_leds,$ R" B5 E+ q* ]& W# C: X
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. i9 d# O9 x- t2 C  a};1 L7 A0 H% Z4 I

" ^5 v1 A4 }  d4 ^6 R( N, U. |static void led_dev_release(struct device *dev)( l/ w! H8 p7 _$ w7 ]( @
{0 C* r& [- D: w) I
};
4 X& l- H  [  o$ |% m! F+ H* y0 u/ |* \" Q
static struct platform_device da850_evm_tl_leds_device = {, k/ C! `& b5 b0 W
        .name                = "leds-gpio",6 z! d7 x0 T- r' }  p- Z! r
        .id                = 1,
) k- q, i# k4 v9 R" J7 }        .dev = {
5 b, }1 n" E+ q1 d( w* |+ U9 |                .platform_data = &da850_evm_tl_leds_pdata,
3 G  P% q; S6 R) ^                .release = led_dev_release,
6 L- I3 {& ]7 b5 h# \" n6 g4 o        }
) ?2 L$ u4 l: u3 Q6 X- X# O};
' B/ u" A$ v2 T+ S8 T, N% a
, Q/ I) }5 H$ x) F6 Xstatic int __init led_platform_init(void)
7 f" W: d1 W" U! p! `1 Q$ }{' ^( d# F- _  c1 X" p( t- D
        int ret;7 Y& z% C) X6 j+ G2 l- ]
#if 0* @0 o7 R$ \# `$ u- ]# i' y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);& q6 M' X; w! e$ e0 ?, b+ m$ Y
        if (ret)% r0 R- `) E1 Q4 A: c" R& M
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 p; J- g( M$ ^
                                "%d\n", ret);
+ b& ^/ e" _( E; a( [% C( G9 v#endif
6 x: W0 ~8 x5 _0 M        ret = platform_device_register(&da850_evm_tl_leds_device);
' ^9 S, z- N  K+ M3 q: u0 J        if (ret)
8 T4 e% a( L6 N. g+ c                pr_warning("Could not register som GPIO expander LEDS");
. {  n0 I# w( \5 a9 I5 u        else
" E7 y/ Y9 e, g* r  k) H                printk(KERN_INFO "LED register sucessful!\n");
- R5 u3 y$ Z6 A( a3 N  F+ T
! F& [5 \9 K4 _  K1 o        return ret;: f: V7 o( j$ Z/ U& Z
}
/ y+ q. F" K6 g' H1 l0 f
6 t$ r+ P9 s+ G. {* Cstatic void __exit led_platform_exit(void)
  k* @1 x, }0 S{1 J. l/ Y8 q/ G. N
        platform_device_unregister(&da850_evm_tl_leds_device);
  z8 h* I& E- k  a, Z$ ~% o
) g; j3 u" B+ A3 ]: `        printk(KERN_INFO "LED unregister!\n");
5 G/ k) Q4 z. l$ t8 i( ]0 S}! y1 Z- C$ N# d9 x$ g# x

6 A& Q7 J& S1 `* G7 pmodule_init(led_platform_init);
, ]6 j# ^# @8 B! r2 Zmodule_exit(led_platform_exit);( A$ R; z4 P6 A2 ~5 W0 F. r  \

/ K  H" O- f! N5 c6 t; c: W( N. MMODULE_DESCRIPTION("Led platform driver");5 J# j' b! L+ Z: T* p
MODULE_AUTHOR("Tronlong");
$ {, r1 N$ I; s9 }0 AMODULE_LICENSE("GPL");
  S& i* M( B. |! N' y
9 @( [( k( z3 S. f- b' u/ T* V2 t4 C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-14 13:10 , Processed in 0.047228 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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