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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 I/ E5 b0 ~- N
#include <linux/init.h>3 a3 X1 c9 u2 D& e
#include <linux/module.h>) @$ Q/ y3 _5 W
#include <linux/kernel.h>
* x( ?+ E" n% B- C# O+ k/ [; v: f#include <linux/types.h>
- ^2 O* E% F( ^  i# J1 l+ v9 ]$ G  m#include <linux/gpio.h>
5 i' l1 G9 y; }8 \7 @1 U#include <linux/leds.h>
+ u+ C- ^# f- H#include <linux/platform_device.h>* e! A. N% E+ a; M" Q) k
2 n( k- Z" w. j, U6 Z2 v
#include <asm/mach-types.h>
1 t4 A: G& v; h5 s* Q$ G#include <asm/mach/arch.h>
( E# R6 F+ q% T3 u2 R" z' j: K* h, x& ~#include <mach/da8xx.h>
) y+ P, ]/ s3 ]& q# Z#include <mach/mux.h>7 n1 p/ V. @6 b, @2 \! \! @

" q  |% v1 i; u. O) @' P; ?3 h' b#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)4 J) c+ h% U* s2 s# ]. c* ~! @
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 B4 T  i4 P7 _( m0 V: l! J#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# q+ E# r: u6 t) d2 Z/ N#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 I. L- T! W# L' S- l
: f& g& [% J' p" U7 Z7 A/* assign the tl som board LED-GPIOs*/
+ A1 U8 v6 V0 E. B. `2 B& Fstatic const short da850_evm_tl_user_led_pins[] = {4 P4 M7 x% ]. K9 ~- C: u0 V
        /* These pins are definition at <mach/mux.h> file */( l# K: d9 Z* z' _% I0 D' d
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" L! ~& r5 _% t8 H/ P        -1
! y- x: V+ e. T; a+ P};6 Z4 \) M( K% _$ V0 x2 `

% B* j5 r% _8 B+ y7 {9 Tstatic struct gpio_led da850_evm_tl_leds[] = {" Y3 w- \7 I3 e8 k* V% ~8 `. w& Q- @
        {
2 _$ T) C3 @" v; b* P% R                .active_low = 0,+ n% V4 O7 a7 W. K' v! F$ p# P
                .gpio = DA850_USER_LED0,- E3 C. i+ L% i. G: [8 \4 d2 ?& ?
                .name = "user_led0",
+ y4 Z* Q2 L5 m. h+ `                .default_trigger = "default-on",/ _' j* {+ i# p" e1 I
        },' e+ T& t3 K' d: x. w" t3 u" d+ F
        {
1 I, K! Q4 F! A- j' p                .active_low = 0,
" Q; L/ i; R1 G$ R  {                .gpio = DA850_USER_LED1,
8 q* o9 |# s. C5 Y/ _/ [6 i7 ?                .name = "user_led1",
* y" f3 Y) y8 Q! [) S                .default_trigger = "default-on",; u, g( ^! m! U" M# \. u
        },; S( n2 r1 T( ], W+ G3 o# A+ t
        {
: E* Y( L& `7 E0 v1 O" L                .active_low = 0,1 |  M6 j# J- c& ]$ M: D
                .gpio = DA850_USER_LED2,% h5 u, o! Q7 U" O+ c0 M( _
                .name = "user_led2",! W! W8 a( |$ [: |8 B
                .default_trigger = "default-on",
5 A# v1 q5 {- O- C, g        },3 e7 m  E4 y# P6 }
        {
0 Y, H0 [! U# a: R9 j7 z                .active_low = 0,
7 m, A: E* V% g6 y+ D0 }                .gpio = DA850_USER_LED3,9 Y2 X( r8 Q+ B- l( @1 h, d
                .name = "user_led3",
1 _& x! A# D8 M! q+ F) d1 d. k! m; X                .default_trigger = "default-on",; V9 ^2 o& l9 J
        },
$ x: E% I* B8 {- l4 v/ k+ @};: Q. |' X& ]0 G7 z& |

9 v8 G1 C/ s% G5 q. K# n( Wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 C: Y# ~" p5 j. U        .leds = da850_evm_tl_leds,) c2 d; }% y$ t7 g0 ?- E
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% m6 a0 v" N/ F8 h! P& k; \$ H$ O( u1 k* e};
. @) H/ z' B2 I+ I5 g0 _8 C
' b. Y' ^$ W3 k" i7 @2 f, y" fstatic void led_dev_release(struct device *dev)1 S  m- G, \$ F8 B
{$ ?( |( u0 s) _% A% S7 p' U. F
};4 c; M, B: X6 W% `6 {2 J
  }# ^+ w1 T; f! b1 A# o
static struct platform_device da850_evm_tl_leds_device = {2 H( F2 z5 e7 Z: H3 N. D& N: t7 n
        .name                = "leds-gpio",
$ }- B" z: E, e; g1 x        .id                = 1,
& u. o: ^8 h4 l6 @        .dev = {
0 y6 P& G' C! w& f+ C2 ~                .platform_data = &da850_evm_tl_leds_pdata,
' h0 W& `5 r$ P) P2 I# w+ p* A7 e                .release = led_dev_release,
- w( o" A% @& U  |  Q& ]0 w5 G% j        }
1 [0 _- S& |, G1 u+ n0 [+ x4 c& D};
* N  J( e  w' y/ J
! d+ E! p) U  G% F9 Fstatic int __init led_platform_init(void)
* F7 p$ c3 H9 h; I: Z' B{6 h+ @; p$ @' T0 q! q0 G3 U* L
        int ret;+ z7 s) I0 m: g, F! q2 x
#if 0: \! k5 q; t6 R: r1 i5 {! K/ _" z" E
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 c' C1 s: M- u" L. ~* m7 G" B8 J9 r  v
        if (ret)& B8 S& v/ J: }& z0 b$ v# o
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 w" S/ [) ^8 P+ x                                "%d\n", ret);# b# x1 G8 _$ N' l0 m8 m& O
#endif# x, m$ V; Q) E/ ^7 r
        ret = platform_device_register(&da850_evm_tl_leds_device);, ^* [% u  R1 B3 j. u% A6 d& J7 e
        if (ret)
5 d4 V0 U9 n, e6 k: Q8 Y) |                pr_warning("Could not register som GPIO expander LEDS");
# o; y: p) C# V2 }5 h1 T7 g2 @' c6 t        else5 {# H( ?/ z% P: D$ F
                printk(KERN_INFO "LED register sucessful!\n");  h4 Y. c( Y4 k8 D  r; c

/ [% N9 V# P1 l        return ret;
5 n4 P+ L6 z6 r* w( X7 A4 v}
* W1 q0 x# E. N4 M" _" }$ ?
/ w# Z* W( {) c7 p9 g0 istatic void __exit led_platform_exit(void)
& m5 O* \) |6 N; ?8 J6 S4 K) L" v{
) U8 x4 P3 P' M        platform_device_unregister(&da850_evm_tl_leds_device);
9 l/ [# ~7 X# k) G- q! R0 v; k# C9 F3 g" `5 v% [
        printk(KERN_INFO "LED unregister!\n");
) H% P: \- n( W7 W# J! @% S3 P0 J}
0 ^( ~, D3 H2 H
3 S. L) |0 j  i# Vmodule_init(led_platform_init);
2 k& _/ D4 x" I( y$ @module_exit(led_platform_exit);
6 G4 o- \5 k' Q$ B
8 I# e  }" C$ J9 i; K3 w- |1 oMODULE_DESCRIPTION("Led platform driver");5 y6 f5 F# t: v- N) L1 R  \5 F
MODULE_AUTHOR("Tronlong");
# U) a( L0 z2 \1 f. aMODULE_LICENSE("GPL");
! a7 i; t9 W; S% e( v/ l3 k4 ~1 C; m( {1 A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-18 12:57 , Processed in 0.038990 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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