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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& Q, n- h  j& D) @, Y#include <linux/init.h>" f8 S6 |$ F: {" B
#include <linux/module.h>, w2 F; J" z; `
#include <linux/kernel.h>7 [) t/ x9 N: I( S* a; J9 O; p7 ]
#include <linux/types.h>" V# v3 S$ x7 W1 E- a2 c$ R
#include <linux/gpio.h>
2 w. s  ~  u* M( E4 C+ Y- i#include <linux/leds.h>
2 o4 f1 r) Y( c, L7 A# n+ f$ X- L) i#include <linux/platform_device.h>
, b/ G* }$ |# k  S" u$ n3 o4 `) f7 ?  `6 ]4 t
#include <asm/mach-types.h>
& Q2 s& S. `6 W, Q#include <asm/mach/arch.h>/ Q4 {' Y; Z  E: ^+ ^
#include <mach/da8xx.h>3 n6 G" \; m& t- ^' U
#include <mach/mux.h>
1 d% k  x( I3 Z) _0 S* S6 j8 U
9 I+ t5 C; `+ ]0 G0 ~" K7 U#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* T1 a' J8 I9 [#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! Z1 t, x8 X: P' q% A7 q3 D
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 ]! T) g. k! U9 ?$ F#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& l/ f: f9 `- e" o% W$ t7 L
+ y5 F' C- q( ~9 m$ q  F  a/* assign the tl som board LED-GPIOs*/
; D  n/ u0 `7 J1 Q- T3 Dstatic const short da850_evm_tl_user_led_pins[] = {
, G# P5 O# T+ H        /* These pins are definition at <mach/mux.h> file */3 w% x4 H6 u9 A6 H) x9 R2 y$ t
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' N' O) K: U8 `1 W0 ]& U        -1
/ O, L3 a+ a0 Q6 S% m$ c- \6 E};
- X+ g0 l# e3 r0 R5 k
  ^  {1 b3 Q7 {- z0 }" p' y- Kstatic struct gpio_led da850_evm_tl_leds[] = {
$ z- i. n$ q4 @  ?2 m1 p+ ?! S        {2 |. x# v; P- z, u
                .active_low = 0,- p3 j" T) K$ I& x% n3 Z
                .gpio = DA850_USER_LED0,8 L0 U6 D+ B* \, U$ K
                .name = "user_led0",5 \' a4 l3 D* J) }
                .default_trigger = "default-on",/ c( [' s' |1 H% H) @
        },) H& \% \. _( n9 ?: w! M
        {
! W+ I4 x0 T- a( j) q. L                .active_low = 0,
. B( B0 O0 A1 s                .gpio = DA850_USER_LED1,8 Y1 B* H+ O& t) \
                .name = "user_led1",2 q8 V6 W( a2 y4 w/ T8 E7 B
                .default_trigger = "default-on",( |% Y  N0 q, L4 z# |
        },) d) a- s  z6 j8 Q1 R* s) s  S* T0 w
        {
6 @" Y/ M$ O1 [                .active_low = 0,
9 e  [8 L& x0 T) u& w                .gpio = DA850_USER_LED2,
6 A& g2 x5 ~* u  S; @/ _                .name = "user_led2",
8 i. s  n3 J" n                .default_trigger = "default-on",3 u6 c& G3 K* c0 k( \2 C
        },. g2 e! ~" O0 D5 _, N6 ?% ~
        {  r/ g0 w' F- K# E' V; [
                .active_low = 0,8 {6 Z0 o6 H& J, n
                .gpio = DA850_USER_LED3,
! ^/ A4 A2 B# p5 M8 M3 F9 F% B                .name = "user_led3",; ^/ c# L5 N( l$ X- S: E% O) b9 d
                .default_trigger = "default-on",
& S0 [0 r( z4 n5 g3 L) o# E        },
& h" x; G5 u" ]- D: w( _% D: E};
2 G9 h: A5 P; H7 S' [6 C/ C! ?4 b) d- G6 f
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- N: }6 ^# T% u        .leds = da850_evm_tl_leds,3 D4 Z6 A. v6 t+ n
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 H+ u6 f; c  j; O8 ~: M};
- t# L( S9 W4 U( D4 j  `5 b& F* H5 N& Y! v
static void led_dev_release(struct device *dev)& u2 J* e, y5 H1 {( X- G
{
% j' U) h3 n2 T, Z$ q5 R, e. e# J};  h6 ~% C& v- p7 v" j6 P0 X

6 }/ i' V+ f! Q2 ^5 Q- V. Bstatic struct platform_device da850_evm_tl_leds_device = {7 |. a& [+ I& l7 d) q5 t2 k& c- a( x- p
        .name                = "leds-gpio",3 U5 F5 n$ r" b! B: `+ |
        .id                = 1,3 x: L: K3 S! k8 h
        .dev = {
' k# c6 P6 ~$ j# [                .platform_data = &da850_evm_tl_leds_pdata,
2 s  }9 H. q' {8 u5 j$ l                .release = led_dev_release,
( C3 A# D4 q( K3 T* T7 L; b        }
1 c' I( I! Y+ ]};# G' X# D; u& v5 l
* g7 ?. g7 P. b5 Z+ l
static int __init led_platform_init(void)
0 g" B3 @) C) E$ D; D{
/ v+ l& V8 `6 u' y, `% ^        int ret;: ^0 G) X0 o& v% c
#if 0" d+ f/ d6 f' A+ K! D) X( q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 `+ M# l  O- U( T
        if (ret)
8 R& m; F2 \" k$ k+ @; H/ I" T                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 I+ J5 s# R. @0 H) C' M2 |
                                "%d\n", ret);5 g) N" P7 u  k
#endif* j6 a9 e( `1 b( O! I
        ret = platform_device_register(&da850_evm_tl_leds_device);4 y! O. E; Z" t8 G5 s, E
        if (ret)
5 r1 E* t  m* t# m) d                pr_warning("Could not register som GPIO expander LEDS");
; F- {# d& E3 L# P+ A        else
; r- \+ x6 U/ s0 W                printk(KERN_INFO "LED register sucessful!\n");2 M, s! s& J; A- _
/ _0 r. t$ U+ H- b
        return ret;
9 T; F# P5 [' W3 V, ~  g; s}) v" W4 Y4 p" i

9 f. j) Z+ K# C8 I. m0 }1 ~1 r# Fstatic void __exit led_platform_exit(void)0 u. R6 `9 _" _7 O
{2 n+ r: g: r* Y" P. q6 t
        platform_device_unregister(&da850_evm_tl_leds_device);
2 S( e+ D2 |+ e- V
; C6 [3 F7 u8 g4 m, b2 s. s& G7 ^8 e        printk(KERN_INFO "LED unregister!\n");" l9 J9 g/ v" s5 {& ?' Z
}9 h; m/ Y6 b0 V' u+ g' D8 Q

" e" i4 T8 [2 mmodule_init(led_platform_init);8 G0 X1 r1 Z! P+ _
module_exit(led_platform_exit);
* S; u% L) E$ b+ X, p' s! b0 S! K! d3 [5 Z* Y0 C3 R
MODULE_DESCRIPTION("Led platform driver");
* ^" ], f2 l' s- HMODULE_AUTHOR("Tronlong");& P( G4 I/ Y; v. m
MODULE_LICENSE("GPL");; j- I2 Y9 z+ Y# l+ `2 @
( Z7 r3 `( T8 y2 H* J6 j6 x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-11 02:19 , Processed in 0.039888 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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