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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" v5 z5 z# r8 d+ T8 k#include <linux/init.h>
  g! H, B3 @# J: \- |- k4 w#include <linux/module.h>, x1 T) A' u. Y& ^
#include <linux/kernel.h>
& D8 P/ b6 l) @  l#include <linux/types.h>
  }9 s( m5 b5 w8 [, d: r' a0 C#include <linux/gpio.h>. }7 Z! p2 v, v/ z. M
#include <linux/leds.h>5 o6 `  c: B, f, Q" g
#include <linux/platform_device.h>
' p; x3 {) {7 r, w6 {; F
" l8 v0 u7 d' m$ K, m#include <asm/mach-types.h>" W. |; B/ C  n6 @. y$ v6 @
#include <asm/mach/arch.h>8 y7 i+ X2 F* s
#include <mach/da8xx.h>
1 [& [& u9 E9 N* O4 D- ]0 k#include <mach/mux.h>* x. A/ B* f% P1 E; J

; ^8 r$ U+ h3 @#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 c9 S7 F$ f4 W0 m- ]#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 Y" [; M; Q- V. f3 g& |#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 N4 ^: o/ }& u5 u. G#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: f$ M6 R3 i; _2 B7 Q4 O3 n0 I3 Z) c2 X
/* assign the tl som board LED-GPIOs*/
: D  s" t& Y, y8 v6 g4 h( }, Vstatic const short da850_evm_tl_user_led_pins[] = {
9 f4 {; \" e3 i7 U        /* These pins are definition at <mach/mux.h> file */: a' A5 r, Q+ D0 M. U: L/ w( f. U
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 T; L/ J* r/ W5 p& y& ~$ d        -1
4 ]' b! u* ^/ l) k};8 D" k" W6 Q5 U# d% R1 l
* ]7 U) N  x. Z) `
static struct gpio_led da850_evm_tl_leds[] = {4 p, J2 A5 B1 D/ F5 y# l
        {
' {- Q5 i! a5 H5 M5 K0 d4 x3 B0 f                .active_low = 0,. S/ n3 v9 W( ]% z" J9 w9 F. k
                .gpio = DA850_USER_LED0,. d0 E6 f( E( o. \# s! @' H' i
                .name = "user_led0",
0 \# o; g8 h4 M, o' k- v                .default_trigger = "default-on",. x% m4 f- o5 G- V# |( k
        },0 ^: M  z3 Y6 a7 [( k9 e
        {
6 T1 y5 {2 M3 V% S8 a2 k                .active_low = 0,0 P( k8 I0 B0 M; H
                .gpio = DA850_USER_LED1,
0 W) d1 z, {( m6 Q: N1 j% v                .name = "user_led1",; D" t' v* O6 N5 p
                .default_trigger = "default-on",$ [4 t" u0 i5 g# }% e
        },0 M6 }% a) f4 O( M, i
        {
+ J5 ^* l5 P8 A! R/ T: W7 {                .active_low = 0,
9 q! f+ A( }5 c2 _  Z' k                .gpio = DA850_USER_LED2,8 [# F/ W  W; O* Q2 _( b; g
                .name = "user_led2",
( _1 z% j/ z% `; z% P# y                .default_trigger = "default-on",& e5 P' j: _6 T
        },8 I6 ?# n* U' h, y
        {
" s6 Z9 H0 O! k6 b0 L$ `( I" Q                .active_low = 0,, L3 x* d1 G: k8 H
                .gpio = DA850_USER_LED3,
6 w/ O! l( l5 A                .name = "user_led3",* T2 k, K8 B3 M/ |2 [
                .default_trigger = "default-on",* Q& o# J. ~% v; m. M
        },
# B& j4 \4 u. B8 ^2 L! T};% `' b) p; A0 Q
; a  ~  e' |5 T; x- m* k7 y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; u$ o# G0 d3 ^. n) J: d1 W" \' m
        .leds = da850_evm_tl_leds,
: O, w. s: \/ s/ k! j% s* @        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, h2 `) l7 K3 I
};
  @; K; s5 i  R# j- h0 @& M( d( w) f
. o; a/ x, b9 Q  Jstatic void led_dev_release(struct device *dev)
# e0 I5 f1 y" A3 p+ m$ x{
$ `. j+ c  }: K  X4 w};
" o- n" x7 }, ^$ a( `
5 T) F; {6 R( l" u6 Y4 u; ?. jstatic struct platform_device da850_evm_tl_leds_device = {, `! I: S" s2 I. _0 T* w+ r
        .name                = "leds-gpio",
4 W* o; b/ p* x6 [) n        .id                = 1,
6 g5 U0 ], p! t& `" {% Y) M) V% @        .dev = {
  \! K, M- B) I" f' u) `                .platform_data = &da850_evm_tl_leds_pdata,
2 Q2 Y7 W3 ?( `8 n: k2 H) W% j                .release = led_dev_release,
' @9 K* t9 n! j        }7 Z5 ^/ a: y% X% R' `9 c( F, [
};
4 V, p8 z8 I0 y) R$ m% r# ^
# n% c$ W# b% Q) sstatic int __init led_platform_init(void)
  E' L/ j7 u+ Z+ L. E{" m' x# {& p# W1 v2 k
        int ret;
0 U+ _% H8 h: y  G# [#if 0
4 f  M  H0 }3 j        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* t% D- T$ }" n4 Q& Z( g        if (ret)
4 f8 b* g- s9 R                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ F8 r2 q& p' ~9 e! b                                "%d\n", ret);
/ z# l* I$ k- b: Q3 W8 K2 c# c  T#endif
. |$ x% Y1 R$ `/ p        ret = platform_device_register(&da850_evm_tl_leds_device);2 E. |7 [+ [/ n3 ~
        if (ret)
4 ^9 f4 M: y2 V2 ]8 S                pr_warning("Could not register som GPIO expander LEDS");4 a1 D7 n$ H  l4 `7 B0 D
        else
4 m5 L1 v4 w. A+ C( t; d                printk(KERN_INFO "LED register sucessful!\n");
/ z' e( o+ e7 z( M, _+ E; Y- F$ t; V/ A9 m, V( n  s
        return ret;
+ M4 z  ]/ U* j+ f% t4 T3 [}& i' J8 C- m% [: b
7 [3 z) F" V  {1 f
static void __exit led_platform_exit(void)$ n& g7 ~& B* r/ J0 U' x5 m
{
2 D0 _0 v2 `8 T3 l        platform_device_unregister(&da850_evm_tl_leds_device);3 z  r) q- F( x* T

. d' L) z! `7 l& b* v0 W5 ?        printk(KERN_INFO "LED unregister!\n");
" M8 ]' O! P4 e- e9 n/ J7 G* q2 x}
% n8 @, _) Z5 L2 Q. V$ Q+ k: ?3 j
module_init(led_platform_init);! B- o7 x1 A9 ?: T- j4 P
module_exit(led_platform_exit);' w* [% U/ G5 j. ?( ^7 A' s2 y

9 B9 G& o( ]5 SMODULE_DESCRIPTION("Led platform driver");
6 S, w6 G! Y/ m, i$ Z( t9 v0 BMODULE_AUTHOR("Tronlong");0 q( p6 J  _# K' z+ J! V( D
MODULE_LICENSE("GPL");
6 f( E+ f8 E. |  V- |% T9 [3 f3 v( L" _7 S* G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-10 15:15 , Processed in 0.039123 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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