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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# N3 {  ^: |/ f# s! w* Y4 ^
#include <linux/init.h>
9 t2 z# v; w& N! O4 _, u* |#include <linux/module.h>6 }! K8 T# ^( K$ X4 c/ ^2 C
#include <linux/kernel.h>
% H" l6 A* F# \3 ?#include <linux/types.h>- z* V: a& o" P, A. T2 u$ L
#include <linux/gpio.h>
! e$ j5 A, @( T+ ^" ?#include <linux/leds.h>
* ]! j0 O/ @. x, X* p$ d: E) E#include <linux/platform_device.h>
- A' E9 a5 [5 B& K% L$ H$ q6 s9 F: F. B! j
#include <asm/mach-types.h>+ n0 |8 J% X( l0 L! X* b5 L( g
#include <asm/mach/arch.h>
: s5 v; {7 @) @: ~. o5 a8 X#include <mach/da8xx.h>
: O$ I, R. ^) q0 X& P0 {#include <mach/mux.h>% d8 r5 A* t* M) |9 k
% ~3 b* p$ w5 u  S7 q6 e% p5 E
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! c% i8 e7 q; a; I
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); J6 e. U6 k8 r, k4 Y+ R1 E9 i4 d
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), w, M/ u0 B% M- C$ E, \
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 L' E+ @4 _3 e$ y$ O
) o6 b  {! o4 K) W% D# ^/* assign the tl som board LED-GPIOs*/. t# I5 M- [! o( X1 j
static const short da850_evm_tl_user_led_pins[] = {' x+ x2 p; x2 F- h4 R& _$ @1 g
        /* These pins are definition at <mach/mux.h> file */1 A2 e6 C4 \8 D3 g! O) s2 B
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) x  X! Z$ Z4 W; k7 s( T* T
        -11 J( `$ G& ~1 K# D! x, J; R  o
};+ p) U8 p2 b4 ^0 S) E# J5 [

0 a( [  u- E7 I6 Kstatic struct gpio_led da850_evm_tl_leds[] = {
2 v8 g  B- _; l/ p6 [( g        {6 k( Z, ^' X) \( c  k9 Y
                .active_low = 0,
( C0 l/ V' k3 J0 S                .gpio = DA850_USER_LED0,
4 ^* O3 t& T" N. ~; x, G* S                .name = "user_led0",
# N" P5 A6 j) e6 H8 \: h( e                .default_trigger = "default-on",, J8 U' E9 c6 I9 W1 C) G. V7 P, B3 M
        },+ A+ \- M5 @& K
        {) V2 K6 z+ e8 c: Z
                .active_low = 0,' T2 {9 U4 E& a) a% b/ }
                .gpio = DA850_USER_LED1,
# n! \# Q2 q4 s/ [/ b                .name = "user_led1",3 x: u/ f/ v+ u) P- Y5 [# [! ?, H/ x
                .default_trigger = "default-on",8 l+ L; I( A6 M% c+ v
        },
8 i* @1 {+ {6 ^* r' ^9 S" f        {
* K: [6 M7 P5 [                .active_low = 0,$ ]  h% L4 T4 M( q. _, ]3 _
                .gpio = DA850_USER_LED2,3 F% u8 i" E0 F" F* L( G* c
                .name = "user_led2",
2 ?" n5 p9 S3 m5 r                .default_trigger = "default-on",) ?( K) E6 x5 K
        },4 e% F1 j0 n: k& g6 f( M% e2 x
        {7 @3 r9 ]: q: }' c3 Y9 ^9 V
                .active_low = 0,
6 v# E/ G6 J5 z6 e                .gpio = DA850_USER_LED3,2 K! R% t% I) Z3 S* g0 |+ x$ u
                .name = "user_led3",8 Y! y- }3 Q- B9 e8 i- Q+ G9 S4 ~
                .default_trigger = "default-on",# V  V2 u  R* g4 p
        },% i1 a) x7 y% Q) Y% b" ]
};
% p& a' k$ V5 ^0 b* X0 c( m. [* O. f5 B8 g1 e( a
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* Y1 J2 C8 T- Y- G5 W3 O        .leds = da850_evm_tl_leds,
9 Z" r: ?9 A' t5 g        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* r% T* |* Y: d9 ~2 z2 N/ p};8 m/ c5 @- H$ _! K

; }6 t! Z# p  U/ Sstatic void led_dev_release(struct device *dev)
' M. i. G- Y2 O; c8 r{7 U* C* n' J" |- t6 n9 Y8 l# ]/ {
};3 x6 L& Z+ }2 p; n9 }* `/ p) }

+ V* E6 W  A) N# ^& a: |static struct platform_device da850_evm_tl_leds_device = {" j7 e( W( b7 o9 i& h2 a2 J
        .name                = "leds-gpio",
8 B' F- \* g; ~        .id                = 1,
1 ?1 F* w- n* |8 J5 I        .dev = {
4 V0 y1 f2 W6 p( O/ e2 F                .platform_data = &da850_evm_tl_leds_pdata,
) A/ q( L: g+ n. Y; {- M                .release = led_dev_release,2 v8 L8 b2 w& L
        }
5 Z. P9 a: ~4 ?0 N};
- v. c. n$ T- u, R7 Q( y" }
" |  }3 Q' }  _5 K/ i% sstatic int __init led_platform_init(void)
' k2 G' U1 u  q5 R0 G' u" V{# \; I) a8 E: w, ^& [
        int ret;
. M  y' z# P; F#if 0
; }7 m, v7 A- h+ |  q, n9 E" q( \        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' M9 f3 P4 a' u/ F
        if (ret)
5 x, J! R4 ]/ G; L                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ p& ^2 E6 Z' d0 ?; W' ]                                "%d\n", ret);
* \4 {9 j: {) _" `#endif
. w/ T- D# k  C# t: X        ret = platform_device_register(&da850_evm_tl_leds_device);
2 v7 T: H6 v/ f. f" Q0 U  w        if (ret)% q  ]0 v3 }, y  G4 T
                pr_warning("Could not register som GPIO expander LEDS");3 I; d$ Y& `  N- C% K
        else5 J4 v6 w( P" Y, k, W6 ?6 I, }
                printk(KERN_INFO "LED register sucessful!\n");3 h7 p' I/ a3 d  v: N/ q. l
1 [+ [. Y9 E% M0 Y6 ?* ^1 C
        return ret;* b$ M+ \' v$ w0 l/ F
}
- @/ g. p) g2 [: q! Z# _& B+ i4 X
' @+ h' Q* Y# Z+ Hstatic void __exit led_platform_exit(void)
* }( a4 H) o  f- O  e  ]3 d3 K) ]{
) R+ h( k, A; m; l+ l        platform_device_unregister(&da850_evm_tl_leds_device);) ^+ [4 N. T% T  A) ^6 ?
- K0 @, M9 z6 k! C0 |) G
        printk(KERN_INFO "LED unregister!\n");% r0 V  u9 x% d! q1 H
}; L3 z; W2 O2 b2 g4 z
! O; F. u; c; S; h! |
module_init(led_platform_init);
& ]* R3 m) _; \module_exit(led_platform_exit);
- m) Q# j" u0 M; M* N$ w8 c$ i# d; b, D
MODULE_DESCRIPTION("Led platform driver");& G7 G- j. m" r9 H
MODULE_AUTHOR("Tronlong");( [/ y& X: y( i/ V9 X& L1 K& h
MODULE_LICENSE("GPL");, ^7 e- U3 e: u6 T

1 Z; g6 F0 `7 d% k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-27 08:05 , Processed in 0.041013 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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