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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 b& p. Z6 f/ H3 o" q: f
#include <linux/init.h>4 r4 ~! u# ]' K( C5 \
#include <linux/module.h>7 c. c1 j9 W% ~2 l1 ]5 y9 M
#include <linux/kernel.h>
/ [$ L9 T: N  x1 N; p#include <linux/types.h>
& r) s' `! z2 D9 c, S8 L. s3 \#include <linux/gpio.h>( [& K7 T7 N. S0 }' A+ @8 i3 `+ u1 T
#include <linux/leds.h>6 @# r. i% J9 u
#include <linux/platform_device.h>
1 O0 i6 ]' P6 q4 N) }/ |
  J  J( ]# k0 n6 X# H#include <asm/mach-types.h>0 n8 L% g& j/ y7 `. u* y0 |$ K
#include <asm/mach/arch.h>
1 G% X3 y: v9 K& M2 y9 B% h; G#include <mach/da8xx.h># w9 R9 g" u' Y+ M
#include <mach/mux.h>' P' A$ N" P: Y" X

% S8 e6 _3 I) y  p; V) j  W: }; U2 n#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& Q, z; z7 O2 T8 X" A( z, F
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: s2 ]+ {# A- W* K' _4 U#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 `* Z# x9 h. E* ?#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 j: ^  |2 F* Z/ ]
$ E6 o+ |0 m, l. r, l! V/* assign the tl som board LED-GPIOs*/
2 m' U; X9 j: a, vstatic const short da850_evm_tl_user_led_pins[] = {
$ }* q" {  Z/ T/ i        /* These pins are definition at <mach/mux.h> file */
  N8 Z8 V5 ~' J) ^        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 E7 X& @. D7 v( i
        -1, f) T( X* Y, R% Z
};1 i$ d, z# M9 R; l8 L/ x
1 P& X1 L2 x4 n, n$ e, ~" ?
static struct gpio_led da850_evm_tl_leds[] = {
- k1 D  h% a% |  S9 X* ^/ W8 R9 Y        {
" ]/ B9 L7 q9 K8 l. y- y                .active_low = 0,2 y# c1 Z# d, Z6 [+ q' N
                .gpio = DA850_USER_LED0,) g3 y* j0 e" I7 {4 O/ ]5 j
                .name = "user_led0",: U4 X/ P- I5 A- p7 H& `5 h
                .default_trigger = "default-on",
5 h. |3 u) K+ e        },
1 U! {1 P# r& A& O4 `" k        {. g. v% Q7 i3 p; y5 E. P/ w+ F
                .active_low = 0,
7 b. ^: C' S- Z3 ~/ @2 h8 u                .gpio = DA850_USER_LED1,
: Y9 g3 n8 v9 {9 y                .name = "user_led1",
' ], K7 Y' T0 |! _' v1 n$ X3 w3 B                .default_trigger = "default-on",* h* l; F' l  _! r6 d- J; u
        },
4 M( E  S! S* M5 @( ], ~        {
8 V# w1 X% k/ F0 \- a- J1 w                .active_low = 0,
8 g* r9 t* K8 ~  B) b3 ~; O, _5 X* @                .gpio = DA850_USER_LED2,
4 O( l% ?$ ]7 v2 u/ R. k                .name = "user_led2",
  Y( o+ \# [6 r) C- P6 P* s                .default_trigger = "default-on",
# k2 m$ |/ t/ B9 V2 [        },: d% B' L8 o. G; A8 u' Z( _! Z: z
        {
( p" z8 W! f* O2 C7 H1 L( X$ a0 h                .active_low = 0,
& U. k' E* m1 Z' G8 D                .gpio = DA850_USER_LED3,. G- W& o/ F' @* r6 s3 O: H
                .name = "user_led3",
+ t2 s# E& `6 E) d" j* o" k( W9 [                .default_trigger = "default-on",! a1 ]( ~8 r5 j7 X  g& z! e6 w
        },8 Z2 z$ o9 O4 u* m' o* ^
};
& P# ]5 x. R3 n0 ^' P5 X2 C7 C
9 g4 {5 F+ r3 c9 |static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 T, \! G/ ?- l  L2 j) `        .leds = da850_evm_tl_leds,9 f$ x1 u7 Y6 o- O
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( [. w0 r7 G! @3 j; S: ~
};4 m6 ]! T. z2 l/ P4 P
- D7 B) r! w. x
static void led_dev_release(struct device *dev)
5 t- s& x) V0 w- Z{* a6 R2 e- }1 T. U
};
! Z! Y& H. V7 L+ }9 L. J! ^6 B$ i. A/ I3 A4 z% o+ I/ Y
static struct platform_device da850_evm_tl_leds_device = {9 ?9 D9 g( N5 Z5 H. k7 V
        .name                = "leds-gpio",- t' @3 D# M) v5 `
        .id                = 1,
& K* ]& d* z% \3 _        .dev = {- p% P% a: R5 j9 ]- R1 Q, ^
                .platform_data = &da850_evm_tl_leds_pdata,
4 ^9 A6 m1 T, H/ f                .release = led_dev_release,  u% s; E; B8 t* f3 ~
        }: |5 g" A% ]* o; w" }; N3 O
};
+ }5 f6 N6 X8 A
# t! k; H2 N8 k$ x; R  M' xstatic int __init led_platform_init(void)
% e6 c! C, [3 q$ ]: F) {/ ~{
/ T% V( x3 R$ ]        int ret;; t" R: K) z* v* k2 e
#if 0+ T5 J% g. k( W9 ?! r" b9 [
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' F& s0 x$ p9 u0 f( A1 V5 j+ M+ _2 k) X
        if (ret)
4 d% Q8 T2 }4 c; S: i# ?                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 ]! O* Z' F7 d+ r; y7 ]/ q9 z
                                "%d\n", ret);; w+ c9 D9 g3 r2 B) d/ X
#endif
8 F( u4 c0 `+ y& I' ]+ f- g3 C9 k        ret = platform_device_register(&da850_evm_tl_leds_device);6 {! t9 u8 B" ?5 m% A
        if (ret)- ~) D3 t$ T" a1 F/ p. N: _# S
                pr_warning("Could not register som GPIO expander LEDS");) ^8 f) W/ Q, [3 n- Q; C, j3 v
        else
% G* |* c% T+ S0 Y4 P                printk(KERN_INFO "LED register sucessful!\n");
7 {6 O9 X5 F- `/ i+ |: p4 U
1 N# c$ a6 K+ j. J  i) ?8 q        return ret;" j  f9 |9 p5 P4 @3 a+ Z8 u. a
}& b' a/ U( T, _4 u. [
, A9 h& U" C# ]% Z4 T; u
static void __exit led_platform_exit(void)& K8 _6 _3 H( `0 h; z  G) z
{
4 z5 M, Q6 M' a5 U6 j# s6 x        platform_device_unregister(&da850_evm_tl_leds_device);
0 D0 {% E/ z5 Y( j+ j
# H& M) p" f) R9 `4 p        printk(KERN_INFO "LED unregister!\n");
  E- r& @' _& F) Q) t}% W' \0 n7 z# x/ t8 Q1 m# l
% {# P2 i- |6 h1 m2 m
module_init(led_platform_init);3 |8 u& F8 @9 R8 |, ~
module_exit(led_platform_exit);$ _9 t2 K; l$ f4 H0 z7 E( x

1 k0 Y; f+ Y9 {  E2 f/ s( c8 OMODULE_DESCRIPTION("Led platform driver");
6 }5 J  L4 a4 |# IMODULE_AUTHOR("Tronlong");
1 v* N# f( K3 Z" \- D, F5 JMODULE_LICENSE("GPL");
% C( |. T+ L4 T/ h8 q; O* g' N: h6 a3 v+ d4 l( ~, [$ N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-23 14:49 , Processed in 0.046737 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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