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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 `( r/ U! `. C. |* H4 x#include <linux/init.h>
- E$ h' ?0 R# n- r- k#include <linux/module.h>
" r0 a" w1 O& A9 @#include <linux/kernel.h>$ @8 R$ v* g7 p& }% Y
#include <linux/types.h>( [: j! L- C. f1 P; N
#include <linux/gpio.h>) Y- O; s# T# B3 s- b2 @+ }
#include <linux/leds.h>7 b3 R! H& S, u- i  ~: ~: p" i; G
#include <linux/platform_device.h>
9 z" s" c& h' L. k; i& b6 Y
7 B6 y" q4 {4 @% L; U#include <asm/mach-types.h>
, }( D  r9 O2 b  x#include <asm/mach/arch.h>
' L2 V) H* ?! V  ~0 F. g3 N  h#include <mach/da8xx.h>
# i6 K& R7 u8 |, L2 f2 g#include <mach/mux.h>
2 K6 N- Q1 }8 P  E, i! ?* f9 v6 ~! z
, n0 v" q; f8 s- }  P#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 `( O  w3 M1 T/ p8 y+ e#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 j, e! B  {" k( s  _$ e( v#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ }% Q$ r' W: l5 o/ `9 V
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ y+ X8 }* _& \
+ y6 W; u3 N! V9 M* E% q
/* assign the tl som board LED-GPIOs*/
$ \8 [( X1 W3 @2 A/ }9 j- sstatic const short da850_evm_tl_user_led_pins[] = {
8 ?$ C* M& y6 y% o7 i        /* These pins are definition at <mach/mux.h> file */+ @( M; w8 _7 G
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
! g. y7 x" w7 _# x        -1
4 P$ E0 A2 Q4 `2 k! j' }) Q};. c, l. e6 P5 F/ e

9 D: N" |$ |7 J! Q& L- sstatic struct gpio_led da850_evm_tl_leds[] = {+ W8 x8 y7 |; ^) c8 B5 f% Z
        {( k; F- K2 E6 x/ l1 w. y9 G% a
                .active_low = 0,! L- ]+ o) P7 E. v; G
                .gpio = DA850_USER_LED0,: v4 X" o- V; ]$ m4 }6 E  q) i
                .name = "user_led0",
* @4 K. |2 u# y+ y! ?3 ]                .default_trigger = "default-on",
# E9 W4 d4 N6 J        },
: W4 C% P% i" B        {" D, L6 W+ c8 p" c
                .active_low = 0,( Y  p( C- Z. H7 ^# v
                .gpio = DA850_USER_LED1,, u" _  M. d1 C; m1 y7 M
                .name = "user_led1",3 k! e5 v0 i# G  ^
                .default_trigger = "default-on",
: g. `0 ~* D5 y9 Z8 H; P* [        },5 L  ~  X5 m+ j( W! D$ T
        {
# s6 E4 f; {# Q% o- P( U3 M4 e                .active_low = 0,
  L$ P$ n5 a8 }) o0 }0 Y% x1 ~                .gpio = DA850_USER_LED2,: l1 X5 R- z, v4 w
                .name = "user_led2",2 Q/ @- M( _$ W' {  }6 m* n
                .default_trigger = "default-on",2 s; ]& I6 D& r) c
        },7 |. r! R5 F* F
        {, M, Z9 T7 {' N3 ?: J
                .active_low = 0,
: H; N* r, o4 [# F. H                .gpio = DA850_USER_LED3,9 ~& E/ W+ ?" |/ V" e, e% t
                .name = "user_led3",
1 H" \; n: p3 v: s" p3 M9 ]                .default_trigger = "default-on",! }. v/ d! T8 V% ^  f# a: Y
        },* M& t. I( k' u8 v. x4 `$ O8 f
};- p: v: M' H6 N8 e5 a& b
' I' ]2 N" W( r9 k3 J" a' M
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 q2 e! A. u4 l* D! g( U7 z( W
        .leds = da850_evm_tl_leds,# w4 i  l! x7 N6 s6 E
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; ?) c& Y; g, J$ J1 S( S  e( v};# k" X% m! W8 q* p" q3 D, C
$ Z- H& Q" i; Z3 s+ I9 b* {
static void led_dev_release(struct device *dev)1 g* n1 [9 c$ y" H
{" D( G  K/ h7 t
};0 c5 |$ ~5 O) w- Q4 ]$ A& \; g
$ b( ]9 M' O& _& i! O! f
static struct platform_device da850_evm_tl_leds_device = {! A2 }6 `5 g8 v! W. o! z
        .name                = "leds-gpio",: g0 K! x# k( U
        .id                = 1,& X+ O1 x1 [4 h; Q4 q" _
        .dev = {9 n( m& m, O% E  Z5 u, \
                .platform_data = &da850_evm_tl_leds_pdata,/ y& ~' T5 M$ m3 A  c$ p
                .release = led_dev_release,
* i) [. |/ m1 X5 D: ?6 j9 v        }
! ?% f# R$ [2 ]& c};  |4 l; l5 }; L' d& ?. {/ y

/ h$ V9 a8 B( k$ d. Rstatic int __init led_platform_init(void): H: C+ R8 k8 h+ e0 p
{
1 X  x, U6 d- q3 b8 [' c        int ret;5 u) b5 {! D* H8 Y
#if 0
$ j$ M. _' U5 Z" U' }" T        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ t+ p- `7 x7 f        if (ret)
; @3 Z- H" H/ G* S: @                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( }& a+ e. F+ q5 z7 t
                                "%d\n", ret);; K8 |1 ]1 `2 v3 o( T; G3 w7 S
#endif
, [; K  [4 ^$ k0 j        ret = platform_device_register(&da850_evm_tl_leds_device);
9 G$ {/ _) s& J6 V* L& M        if (ret)
5 o$ @7 g6 U/ r; y& t                pr_warning("Could not register som GPIO expander LEDS");
! J5 L4 V1 h: Z        else
* O2 C( [  ?5 q- p                printk(KERN_INFO "LED register sucessful!\n");* B1 |7 D; N; D; H

5 w8 e' d: c9 W! D        return ret;6 N. w6 a1 M- \$ Q1 E
}
' ^4 z1 {# N  u2 @! W( C" R
3 ~, V$ s: D2 Y5 Q  T( xstatic void __exit led_platform_exit(void)% p" R( m) k3 J$ W* Z3 h/ O0 _/ o& F
{
* d3 k# [8 P2 Y        platform_device_unregister(&da850_evm_tl_leds_device);) a& A. ~( S4 e

/ ^: O8 u. ^) k+ C/ @( g        printk(KERN_INFO "LED unregister!\n");, b% O# i; i7 t
}  E" F1 H: [  A% Y$ w' e6 v
: `- U# o! V, ?
module_init(led_platform_init);
2 k2 w% b/ S7 P# e: o: B7 n! O; Amodule_exit(led_platform_exit);* P' `6 X1 T1 s, g! o; Z
1 W+ w, _7 L: N) P/ @8 Z
MODULE_DESCRIPTION("Led platform driver");# U8 m/ ?7 B( W1 \
MODULE_AUTHOR("Tronlong");
5 q+ ^( n/ h- e/ z1 p: nMODULE_LICENSE("GPL");
0 U5 p- w" N& u5 H" ]$ N7 g; A2 {3 J$ T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-10 04:01 , Processed in 0.039272 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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