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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。8 b7 G- T3 h, F" W' R/ Z
#include <linux/init.h>7 h# i7 k7 j/ I
#include <linux/module.h>! A5 f) S) R) _7 y% x
#include <linux/kernel.h>
( L& ?- |# V2 q2 S#include <linux/types.h>
0 T# k+ X7 v6 n) L- y$ j#include <linux/gpio.h>
; u  c+ G( i. G# R. z#include <linux/leds.h>
* r/ [/ j& l* A& H7 P#include <linux/platform_device.h>
4 U+ A# U$ _: t  g+ C/ C7 k. ^0 {. ]$ n% Q$ L
#include <asm/mach-types.h>
% D; U" K/ @; g4 \( \+ i#include <asm/mach/arch.h>
" m' |! r' u* T+ B1 A: f#include <mach/da8xx.h>
3 g7 k  A0 o/ l1 S2 _#include <mach/mux.h>! q/ @, y9 t0 b* l0 ?

0 ]4 n4 ~7 Z. K! m5 U# i#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- S3 q* D) x8 K% X& s4 t  w#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. I7 [4 `% Z" [6 C#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); D- z9 m; o7 G0 W: q5 Q* v
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 A4 A- V" O1 Q; z& v; n$ b

# W) E5 _! [9 Y1 R$ S/* assign the tl som board LED-GPIOs*/
% ]/ N1 W* S4 d/ x* F+ l5 Bstatic const short da850_evm_tl_user_led_pins[] = {6 R0 I+ U8 l/ u( j$ ^& C
        /* These pins are definition at <mach/mux.h> file */
, R9 I3 m  p- Q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 q& H# @7 W3 z# k
        -1
/ s/ _/ M. ]) j};9 V5 {" ?1 [: Y

+ i+ [5 N" m1 `9 Gstatic struct gpio_led da850_evm_tl_leds[] = {
6 W% W4 A3 z, F- d        {
" ~( ^& \' X- W. t                .active_low = 0,6 ^) P# x1 m. C, E& Y# O
                .gpio = DA850_USER_LED0,
+ n: u2 E6 L; K; u/ L2 M# a                .name = "user_led0",
# o/ i; d' h1 s0 }1 m$ L' t3 E                .default_trigger = "default-on",- K( U( W% Y, F2 S9 d( k
        },
! t+ a/ N  |2 j( h        {( N% e) p% _6 y0 q" g2 c
                .active_low = 0,
6 \: a- E4 _2 e8 n- t                .gpio = DA850_USER_LED1,8 {7 j( M4 J$ S! [
                .name = "user_led1",
* u) r2 D$ `' v1 ?. q8 K" _1 N8 Y                .default_trigger = "default-on",- W$ P7 ~) b% ^1 G. _
        },9 F3 n4 D" w+ ]- P/ X
        {0 k0 z5 B" f. D5 \+ r8 |+ l
                .active_low = 0,+ m+ R4 k- h, [0 G
                .gpio = DA850_USER_LED2,
! [* ~, F0 y& `+ I' A6 T  s                .name = "user_led2",
$ c" b2 _; D7 W1 W5 z4 t4 }& x                .default_trigger = "default-on"," W0 \$ q# j- p1 s1 ]4 J
        },2 ^0 V3 p% o- v8 }' S4 `
        {
3 T$ b( T6 c# H) A: w! a) F                .active_low = 0,
- o+ q- x# m: \2 z- ^# E                .gpio = DA850_USER_LED3,) I5 y  K# E4 A( Y2 [/ u' n( R
                .name = "user_led3",# p) ]3 O$ k% S6 X' z3 p
                .default_trigger = "default-on",
5 J0 d* J& X% h( S. g: T9 m( }/ H        },
' N6 D) q5 w( O6 R};
3 v" _% u7 R7 M# l+ U, {! q
% I& s% r! O$ Q  Y  F+ {, H/ ~! [static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- P! _8 B# W+ o* y8 v        .leds = da850_evm_tl_leds,8 P4 j7 ], O) i! i' J2 r& H( t) e. k$ X
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 }% I: T; x# [( U* t};
+ \5 L3 R" [3 h9 V7 F3 P& z( ?! ?$ @2 Q# V0 m# c6 A
static void led_dev_release(struct device *dev)9 B% s& j8 `6 `$ `4 s
{
. y, R+ H% T, q* n0 S# O+ K1 s};
8 E- U* w" Z$ v( s/ Y- e* D5 C1 |" F) ^6 v( V
static struct platform_device da850_evm_tl_leds_device = {- p* Q" l4 h- V1 e& u% V
        .name                = "leds-gpio",
! O" J6 B5 ]) L2 Z, @0 U9 O        .id                = 1,. E8 |* N* @8 i0 j0 H0 ^+ y
        .dev = {
$ Y6 {; J" J0 L! |# T. E$ Y) M                .platform_data = &da850_evm_tl_leds_pdata,
: o) j" [+ N3 ]. y% |                .release = led_dev_release,
( E, G7 W& b* m        }
7 L/ g* \1 R) G& T5 o8 y};
) K* b# W* F% ~( y9 p1 I: b
+ }" P- b) {, B1 I  _# Gstatic int __init led_platform_init(void)! M# l7 U7 I, z( t
{
# W. ^7 t* k  Q# G! |6 ~        int ret;/ i( ?4 x1 ]' A  L9 A2 q2 v
#if 0
; M, k7 s/ A6 `9 b8 X        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 g; n+ G; o" k- O7 n        if (ret)) P% P. T2 a; B9 {6 U# Q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 [' |- ~. }2 Z$ O                                "%d\n", ret);
. h2 t7 A. ~: h#endif% ^! x# ^( L8 @* e% X5 G' b) M# x5 B
        ret = platform_device_register(&da850_evm_tl_leds_device);5 s1 ~" }+ L% e$ L1 H
        if (ret)( g) k+ i8 T* ?2 B2 t# ?/ ]. A0 K" Q
                pr_warning("Could not register som GPIO expander LEDS");! A6 K% I, P+ b* o% Z5 h  L
        else
- J9 g: J# t& l2 h' V, x                printk(KERN_INFO "LED register sucessful!\n");
; F% C2 M7 u4 J8 P6 r  X6 [9 b) L4 I
        return ret;
/ z0 Q0 G. v% p: ]1 [/ G}' H. v6 N# G; U4 D7 C4 }

9 @' B6 R( s7 h3 Z+ l# nstatic void __exit led_platform_exit(void)
8 j$ j. s: D4 K, h{
# E# ~# Q& q. u8 q$ m2 X' `5 n" y4 s% v        platform_device_unregister(&da850_evm_tl_leds_device);& x( w. }' ]% z: M
1 O7 C% Z+ n9 P6 f  \" N/ N& D+ ]
        printk(KERN_INFO "LED unregister!\n");
$ |( q5 |' d, e$ K- g( t& x}; Z# g& O) _. P, W
: ^8 s. P3 X: q( l* J9 \3 }$ r
module_init(led_platform_init);
  x( g4 ~% t; @$ l0 d6 tmodule_exit(led_platform_exit);! k# g; T4 m3 l$ `6 m0 {

1 J0 g! J5 c) {( E/ AMODULE_DESCRIPTION("Led platform driver");
) g3 d( W/ L. S, s, U  d8 U- gMODULE_AUTHOR("Tronlong");! W4 p4 f; L( Y  T
MODULE_LICENSE("GPL");9 m  v9 p( B5 f' J
% }7 b* O) X! X+ d" F1 _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-13 16:55 , Processed in 0.051019 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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