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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  y0 P5 G; @% O# T
#include <linux/init.h>. C6 t3 ]2 A$ y) k$ Y) x" M) u- H+ p5 F
#include <linux/module.h>9 |" V% ?# X: M  A* D! G- K
#include <linux/kernel.h>; C9 P" o/ \/ c' i
#include <linux/types.h>% i6 @1 r+ C- r" N" n$ P
#include <linux/gpio.h>
2 ]/ q0 A% T! G5 |#include <linux/leds.h>( d; S& s/ ]* z$ p
#include <linux/platform_device.h>, {$ B1 P1 ~7 v# j3 A* ^/ A9 e

, j! v$ o' t3 H7 k- E3 k" i+ g#include <asm/mach-types.h>) c* H/ k. e6 [- J8 T9 l5 }+ i
#include <asm/mach/arch.h>" ^7 b2 U- w; ~  E4 T/ f
#include <mach/da8xx.h>4 s/ Z9 r* z3 e3 d% Q/ F
#include <mach/mux.h>
* u0 ~& \" v) L) n6 ?9 E( }' l* }. ~  v
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& ^+ t& W' D( m1 Q# S#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ \" G* T0 ^1 J+ Z: E/ {#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& H, y  |9 x, ^# q0 Q4 {6 x; `. D#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- x; A; |5 J! {$ r& ]1 o$ S
/ D' H* {5 D7 ~" n' p3 X% E0 q- n/* assign the tl som board LED-GPIOs*/; `4 ?2 c3 V$ u' C: L9 r' x
static const short da850_evm_tl_user_led_pins[] = {8 J3 m- B% C: y6 w, g  Z: b
        /* These pins are definition at <mach/mux.h> file */- G# O6 `, {; M# I- R3 [) i( r; s
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, N% w6 K7 \+ B; x( C! @3 i: b        -1
/ N9 T, h1 Z8 t# i};
' Y  b8 |( {& F9 Y3 `3 e* u8 T: k5 d: f7 R1 }% ~# q% L$ p
static struct gpio_led da850_evm_tl_leds[] = {% K* P* `/ l" }
        {) W3 [  y) Q* D1 C0 d; z8 m
                .active_low = 0,5 M, M5 R  G2 |- M% i  v6 _- X
                .gpio = DA850_USER_LED0,
- {6 Q. B) @% I8 F2 R3 G                .name = "user_led0",) D, `& b9 @9 L- V  F
                .default_trigger = "default-on",9 f+ k  l0 l, b- k
        },
( H1 g. p" C# T! m% L3 W) u        {0 f% R: T+ O* C$ _) G
                .active_low = 0,: T/ B# F! P2 e! ^, {. c+ V" Q
                .gpio = DA850_USER_LED1,8 Y& I7 A! F$ q% w! ^+ V) C
                .name = "user_led1",3 C+ A0 d7 r& Z3 K3 h5 {8 J
                .default_trigger = "default-on",
% k' E- O8 e! c* e+ g. A4 {        },: e5 j& i6 A. u
        {
4 L1 w/ m! t' }; V2 u6 ]- l8 @                .active_low = 0,+ e9 h! ]) V# K9 s  P  X+ F
                .gpio = DA850_USER_LED2,. g; l$ @& n) @! N3 P
                .name = "user_led2",
7 ^) D/ W: K8 M1 {+ Y                .default_trigger = "default-on",
1 c2 i* L4 |" O' v( T& X- ], }        },  V1 r* ?' d) l7 y  Q- A2 s: x
        {
  q4 }  {( H* n5 G& j                .active_low = 0,
2 [% L; m- b+ i/ S) W9 s. e) V) ]" U                .gpio = DA850_USER_LED3,
# d; s" |! Q) M- P4 P0 S) J* Z! _9 v                .name = "user_led3",: W9 _1 {/ {8 k4 f' v: \2 N0 p" [
                .default_trigger = "default-on",
5 _& P( b, D# `2 h2 H/ m/ h        },1 P" E& X- z7 ]/ b, c% v
};/ J7 N4 @/ q( X% J
9 M* ^3 M4 A8 h: ?, n3 r! y0 N
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 n& U9 r$ C. M7 U; D" B) A
        .leds = da850_evm_tl_leds,
. U/ s, O# T# D" W2 w3 M        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 n2 @# W. I; }/ ^  L% d};
8 \+ j- A; b. w2 N. K
# I# `& m/ w) I) u5 Z6 w( W3 S: ^( @static void led_dev_release(struct device *dev)5 S8 F! Q7 a) {# X( W% ?/ x7 H
{
3 A) t+ L* \6 l; d};( R, ^) I) `7 d5 X# Q/ Y# s. Z
7 E8 c7 e9 m* n
static struct platform_device da850_evm_tl_leds_device = {0 R5 S6 l  a% w3 i$ ?3 W% O
        .name                = "leds-gpio",: |0 y) l) s) x; ?' \/ n) b
        .id                = 1,
2 Y6 U: q2 A% v1 z        .dev = {
- w( y) \' F. N4 ?                .platform_data = &da850_evm_tl_leds_pdata,
: U: Y8 _& r3 d$ c5 m6 X9 V4 `/ J& S" A                .release = led_dev_release,0 H. W; u3 t+ ]  _- }+ T
        }
7 o# z( b' Q' t4 E( d2 U: j, a};/ r) ?* I3 k* Q- a
9 S# N& H! x" F% S  S
static int __init led_platform_init(void)$ R  g! B4 ]$ S% [/ k4 _+ s
{1 t# ]9 Z/ Z+ ^6 i
        int ret;
8 q! h" z3 w; @  w9 j#if 0
1 a5 ]1 W% S  Y" O% p        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 |( a% ~' l2 L+ `5 B3 T* [
        if (ret)
5 p& p; t1 t: X( C                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 J/ ?4 ^' ]0 P) k, U
                                "%d\n", ret);
. ]7 O: h. r4 x0 k  U#endif% m6 W+ w" E0 l6 W' n& S% A; o  |
        ret = platform_device_register(&da850_evm_tl_leds_device);& O# I% Q+ a, f& {" I
        if (ret)- c; F" T8 u8 Y  d; j4 a
                pr_warning("Could not register som GPIO expander LEDS");
/ `3 l$ w( P3 Y9 X. T. n  k7 }* s0 `7 o0 m        else$ w3 V- f, |) a
                printk(KERN_INFO "LED register sucessful!\n");
! k# j! m/ L8 g- o9 A+ ^
& _" W7 L6 @. M( S' d        return ret;# @( J4 E, r" f% e% V
}2 T+ @# Q. v9 \3 M0 U1 m4 m+ P
# q! b% k+ E# M" N
static void __exit led_platform_exit(void)
3 U! \/ U' T$ {  N% k{
5 I8 h9 J# l' `' ~3 C$ N        platform_device_unregister(&da850_evm_tl_leds_device);/ {' ?. w0 {8 f+ C8 k

+ O( W% {7 g. t" t6 h        printk(KERN_INFO "LED unregister!\n");
' T" O6 d4 i8 F# ?& \' ^% y}0 r( M& T" C* _1 V" t
4 A$ f1 S  I) Q- _+ T; Z: Q
module_init(led_platform_init);, k. [/ Y0 c6 w% p0 o
module_exit(led_platform_exit);
" U* _. U7 T! \3 a5 r6 |7 ^$ `- e/ x5 i1 a' V
MODULE_DESCRIPTION("Led platform driver");
  q3 k0 J9 _9 v: |& \6 _* x8 v& IMODULE_AUTHOR("Tronlong");1 B0 h9 f: I* k$ c' O1 A
MODULE_LICENSE("GPL");+ E+ P" D& u8 p2 e

6 J/ Q$ O# @# x5 S9 z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-4 03:53 , Processed in 0.037842 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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