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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 \# q) _! n. W& C0 {
#include <linux/init.h>
1 w1 K& e; l, r! y. @; {2 l) ~#include <linux/module.h>* F" s8 U0 C5 o/ g4 m
#include <linux/kernel.h>
' j7 ]$ J8 q( n8 O2 V/ F#include <linux/types.h>% N: ?# \. I2 U$ L
#include <linux/gpio.h>4 w2 u% m5 o! B9 h! ^
#include <linux/leds.h>% T* T3 ~) l0 M( I0 R$ f2 ?3 ]
#include <linux/platform_device.h>
) ]1 E: b' g$ c: }. d9 E* D' Q3 T2 X- N$ j  A' z
#include <asm/mach-types.h>/ ?& D* C# E  B" d* F4 L) T* s+ s9 J9 d
#include <asm/mach/arch.h>
' p5 @3 h7 B- a5 D+ k#include <mach/da8xx.h>, H; ^/ E% `, l2 C- B% v& Q
#include <mach/mux.h>& @6 E* [) e. g
' o- n, g5 P$ y8 ~
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; o# H: U- y. [1 T( X7 f9 ?#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  Y. J" A: D1 D
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  L! Q" a: O. s8 G7 o1 e#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ e9 C3 M- w+ L8 x: q- ?! m) N; }
: D; @* r) q2 r+ k
/* assign the tl som board LED-GPIOs*/# p+ d; l8 b' ]2 p
static const short da850_evm_tl_user_led_pins[] = {
1 W1 y! c3 c6 R; H& ~9 f) K        /* These pins are definition at <mach/mux.h> file */
, u) P. I0 w$ H        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% e( x( D6 J$ K! F: T
        -1
& ^; J, r( v7 I$ O+ A/ U6 j- \5 ]};
" m0 D; b% b: q' o7 g
! L, G. |$ R' ~' o" `+ X; lstatic struct gpio_led da850_evm_tl_leds[] = {# |+ W6 |1 g7 C2 w
        {2 {' G8 q8 V, _5 l  ]
                .active_low = 0,
& Z6 K0 y5 F, y. C                .gpio = DA850_USER_LED0,
# O  c% @0 c$ A& ]5 R# R# x8 o                .name = "user_led0",
4 E, l, s' A) m# I                .default_trigger = "default-on",
: t- n5 D$ N: g% m/ M) L5 w% `        },, ?% z( j7 P+ G! b/ r
        {% t- v$ V) y3 U8 j5 p
                .active_low = 0,
1 t% j/ W' w  N, Q- a& e                .gpio = DA850_USER_LED1,7 X) b% P. Z% F  W# g
                .name = "user_led1",/ D6 c' B- [. ~: u1 v' v1 x/ |! t
                .default_trigger = "default-on"," h$ U8 c3 A% H9 L! H/ f' I" Q
        },  H+ r8 n9 I% |8 o) I1 l/ C: H9 r
        {9 z5 u( c/ _$ K0 Z" {
                .active_low = 0,7 R. e# f4 A4 ?8 S2 e0 p6 H2 j
                .gpio = DA850_USER_LED2,
- i1 H0 `! i* y5 T2 t                .name = "user_led2",/ ^* W3 a4 E7 q7 B
                .default_trigger = "default-on",. }# G+ ^& J0 o1 f9 V2 a9 L+ f4 I
        },4 m- r  c8 I# |- ^, c" S& U: s
        {
( ]3 s% H9 Z, ]1 n4 C% V, m                .active_low = 0,
! n* H1 O* h7 o% L8 W, U, N                .gpio = DA850_USER_LED3,
# W) i2 `& A1 Y, J) {( m2 F                .name = "user_led3",2 R, z6 f% p4 f8 C- }6 X
                .default_trigger = "default-on",0 k0 ~$ e8 z6 [4 O1 q$ v
        },
* Y' Z% ?; n' E2 f1 K! k};$ @9 O$ d8 }, L: g
) D& ^7 C2 U+ H
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 ^2 d- k+ g4 I  d2 X" O8 N5 E        .leds = da850_evm_tl_leds,' O# u9 u1 N  X1 `1 f: ], q2 {
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 Z# l+ i/ d% }( z+ t
};( \' Z+ w5 x' i
; ^" r( m6 a! x: S- K$ B
static void led_dev_release(struct device *dev)* ]5 W3 M5 j4 w  R+ x
{
: `$ L9 T- v/ B- K, y3 K};5 m; p7 j& l9 a4 E: f. G0 r+ L8 d; ?

6 q( R+ `* d/ n' nstatic struct platform_device da850_evm_tl_leds_device = {4 U8 n5 p2 h( I) K+ x+ N3 J# S
        .name                = "leds-gpio",
9 t* a: k- X; a% E        .id                = 1,
" v  z) F  S7 m, H        .dev = {" }( V( i: ^7 X/ H8 f9 M" n
                .platform_data = &da850_evm_tl_leds_pdata,
' A, O/ z1 K, B! l2 _9 g1 [                .release = led_dev_release," r' @- [- O  H4 k* A+ e
        }# N1 S- ?/ t0 ^, ?
};
1 ]1 G8 N+ D+ r' C
5 g* F4 l. y: @0 f) E# E) k2 Nstatic int __init led_platform_init(void)
. z* P- r' d3 i+ O2 |{
7 ]5 m& P9 s6 x: i0 k% |- V; j        int ret;9 j- y: g3 Q$ \
#if 0
. y. J9 y0 v$ G        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' t, l8 {) o8 k3 o4 C3 D
        if (ret)$ Y1 X* Q; X3 ~) M5 C3 ^8 W
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ K4 F; Y3 g3 ^' g7 O% `6 z
                                "%d\n", ret);0 h& M1 s+ w, d9 r. a( i
#endif
1 U9 N$ @8 Q9 ]( R        ret = platform_device_register(&da850_evm_tl_leds_device);
+ H6 U- L# p. K. \( X" M( n        if (ret)
; D- k4 h6 G/ p$ _5 g' `. y$ ^7 Z                pr_warning("Could not register som GPIO expander LEDS");
8 B& c: }1 F. [        else9 Q1 l& e9 q* X1 y9 m
                printk(KERN_INFO "LED register sucessful!\n");- X! Q$ ^4 ?( O5 Y
" ?: X7 {: O3 b- r
        return ret;  W3 |9 g) C  M. d7 F
}
$ z8 N3 V) q  w, d# S+ t9 [
3 e- F4 r" H& t( s% m" u9 ]static void __exit led_platform_exit(void), U/ R, D4 L' T6 w% ]! `+ @) T
{8 S) c. W/ R+ ^3 W: v
        platform_device_unregister(&da850_evm_tl_leds_device);
1 |4 l3 b& C: z) ?7 n& |0 d  _. y" I; \( y' f9 R/ f. Q0 C% A* H
        printk(KERN_INFO "LED unregister!\n");/ ~, M- Y$ O6 c; G6 C- p
}$ x9 W0 u  B2 o
+ _8 M" S- r0 a) t6 ~3 n6 v
module_init(led_platform_init);
6 v) _/ O) [0 m/ |4 M6 l, q+ ~: Wmodule_exit(led_platform_exit);
& a0 s: m' f/ W5 I. ^/ d" G$ G; s# h, i+ l/ `0 l2 S
MODULE_DESCRIPTION("Led platform driver");% k/ h. g+ |3 n- u3 }* ^
MODULE_AUTHOR("Tronlong");
, u( _" _4 m2 K. k7 SMODULE_LICENSE("GPL");! a& |2 @& e: u' D& p4 e  S
' [) F% f" L8 Y% g" \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-16 11:43 , Processed in 0.039197 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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