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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; c8 e/ m- y6 j7 w' ^$ X4 J, \#include <linux/init.h>
' R% h' B: L9 [#include <linux/module.h>) I+ E( ?* D4 G9 \; T$ V  s$ v
#include <linux/kernel.h>
4 G( q3 }1 H, o& {5 u4 G7 i" k#include <linux/types.h>
, j+ m9 J. d% o# `4 n) d+ s% l#include <linux/gpio.h>
4 P0 ^; W* R8 s#include <linux/leds.h>: w1 C& O( n' s1 z
#include <linux/platform_device.h>
4 P7 z5 `  m+ C' _2 g- A! m) v  V4 v1 C4 g: J
#include <asm/mach-types.h>$ r9 v& o" G& ]; U( S
#include <asm/mach/arch.h>
; [; D. D" Y6 u#include <mach/da8xx.h>
3 B, z# G6 X; j" D& b- Z#include <mach/mux.h>
! ]/ `9 n' ^$ W& U+ z( J, W2 T: K, g3 t5 {2 Y5 _7 ^
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
/ l  m1 ]8 [  `0 l6 q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 o! Q5 i5 Q/ O8 b6 ~% t' P- p
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 u( W7 U4 y  ]( k8 z4 ^6 U
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ V/ d! s6 W/ P
1 \9 G  l1 P; I2 @/* assign the tl som board LED-GPIOs*/
' A* o8 S9 K) \' Q. K& v! a4 C: T7 `static const short da850_evm_tl_user_led_pins[] = {
2 e; i! p1 J$ \3 q. c$ Y( p        /* These pins are definition at <mach/mux.h> file */. O8 J; O% m  c7 J# T
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) s. k, l! e4 P. C( g! W/ S
        -1
$ b- C5 R2 x. q6 I};
$ L+ [- E, i/ D$ C. {3 ]. W5 Z- t# r
static struct gpio_led da850_evm_tl_leds[] = {
. j' P: X2 v) p+ D( `3 v0 o# ~        {3 X2 R( H. v; H0 G8 Q, [* o* `
                .active_low = 0,+ U; K3 E0 W7 R2 W
                .gpio = DA850_USER_LED0,7 z  N8 V+ c8 D9 `+ y5 _7 J' J
                .name = "user_led0",1 N( C5 V4 U' F) h, \, s  n9 }! Q
                .default_trigger = "default-on",
: h* D9 T) b6 S, d1 H        },
! o3 I- K. ~6 T1 k        {
( g# ?5 X3 y( Z# l  v7 f% j8 k                .active_low = 0,
$ o9 L, j2 u! I, t5 R                .gpio = DA850_USER_LED1,. u! N9 Y6 W( N+ d  }* E, Y- o3 w
                .name = "user_led1",
. F& W/ e9 \" w* R3 m                .default_trigger = "default-on",! w& z2 r9 Z/ |6 z) w; O
        },
. c/ m! P5 |) b& L9 }$ E5 C        {/ z* c/ `' K/ z' t7 X
                .active_low = 0,4 R& b& g! e" h1 `
                .gpio = DA850_USER_LED2,
; G4 z3 K( }4 w: J                .name = "user_led2",7 e2 a2 D9 C8 j/ U5 W
                .default_trigger = "default-on",
7 J) ]/ y/ q; W        },
: x) b: |% K3 }8 ^* ~0 ?* k        {: ]3 Q! _( F' K& _
                .active_low = 0,
% N6 N' A8 j1 Q0 p; j0 y5 o                .gpio = DA850_USER_LED3,
' x' u5 i0 _" J4 n3 e                .name = "user_led3",
, W; F! [& ]. k- F) \+ C                .default_trigger = "default-on",4 u& Y8 ^7 c+ G
        },
9 w0 Y4 |9 f! L3 J) ~% y: w};5 j1 K+ l( o* B# H
4 m9 @9 `' ]  Y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' S5 b1 U! t$ _# T' n& }5 l        .leds = da850_evm_tl_leds,
: o6 N& l1 N9 M3 z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),* A4 K% I1 U% F2 f/ g* v  C
};1 @) N! o$ C6 o% a# r

( R0 c- h: g+ I  hstatic void led_dev_release(struct device *dev)
% U2 ]  r  f6 X2 {2 f) x0 o{
* q( u  n/ C, x' a5 P};
! n4 s1 b2 A% d; k* A* q# _" g) a" @# p0 \! l
static struct platform_device da850_evm_tl_leds_device = {
3 k* @0 _- A: {/ O( ]- ]. [4 \/ U        .name                = "leds-gpio",
- d# `/ g2 F+ S$ C# ^        .id                = 1,# F- F  k3 D5 @$ i" V
        .dev = {6 q% }- ~7 l5 Y- V
                .platform_data = &da850_evm_tl_leds_pdata,
/ S$ d+ j. B/ k8 C; Y; _                .release = led_dev_release,) C5 S% ^% P0 U
        }/ t  _/ Y% `4 |. F2 P8 i" g
};
! e: L4 K6 Q1 N  T0 K6 a( ~1 a$ z) X6 M1 S5 M
static int __init led_platform_init(void)
  \* O* U) r% p{. U# C, o1 a7 v0 ^6 x& u
        int ret;- w5 W' Q- G5 U: w6 T- G  F/ E
#if 07 y# ?" x0 m7 L. Q  F7 r( ]1 j( Q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);/ S; E7 O! `8 e3 }$ |
        if (ret)
3 {) b% x( l, V  m5 ^                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& J9 p+ R: u# O- c! d
                                "%d\n", ret);) _4 V1 K: G7 H/ n
#endif
9 {" A0 H$ D5 J" @& j: S        ret = platform_device_register(&da850_evm_tl_leds_device);4 |6 r; g8 u7 M
        if (ret)
+ ]- S% n5 X2 Y1 O4 W                pr_warning("Could not register som GPIO expander LEDS");
6 K% U- W6 N6 l; y# ^$ H3 @        else
% e" B: |+ a; C3 J                printk(KERN_INFO "LED register sucessful!\n");) {# H0 i1 }0 E' `) y  r+ S
# Y4 }( t( O9 H
        return ret;
, h" I+ ^2 H2 q}
7 b, H  C, r, j4 V% N( s& f6 D2 J/ U, ]* P5 |- L9 ?
static void __exit led_platform_exit(void)' B0 N# U. C* ^+ G" R- O, ?
{
( F' p+ {7 |- ?2 w+ ^9 O6 A        platform_device_unregister(&da850_evm_tl_leds_device);
' g0 C8 F/ K; y7 A1 G8 U6 d6 v* i+ a" S, Z$ j0 f: Y0 y( ^
        printk(KERN_INFO "LED unregister!\n");
6 X4 o  I- H* v}
/ n1 s5 R4 ^' I6 ]1 L+ v5 o1 Y% J/ _" n
module_init(led_platform_init);
4 e. Y/ `$ F4 u6 G2 a% n+ Zmodule_exit(led_platform_exit);
3 l" |) @# [) x* x  x- i- O3 u" ~, c; |& D, \/ F
MODULE_DESCRIPTION("Led platform driver");" k& V9 I3 B2 _: Q7 s9 D% U
MODULE_AUTHOR("Tronlong");
& _/ }( p6 `/ L: p" S. |MODULE_LICENSE("GPL");
% W# a) M: R; K* U9 D# P. G' Q' v& t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-20 22:47 , Processed in 0.038252 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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